Socket编程—TcpListener和TcpClient的使用
2016-03-31 23:31
447 查看
前面的几篇主要是讲使用Socket类进行网络编程。今天学习了一下TcpListener和TcpClient类的使用,这是对Socket进行了封装,这两个类会自己创建Socket对象。
使用起来比直接使用Socket要方便一点。不多说了,直接上代码:
服务器端:
客户端:
看起来是不是比直接使用Socket要简单点。这就是面向对象封装特性的魅力所在。
使用起来比直接使用Socket要方便一点。不多说了,直接上代码:
服务器端:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace tcplistener { class Program { static void Main(string[] args) { //[1]TcpListener对Socket进行了封装,这各类会自己创建Socket对象 TcpListener tcpListener = new TcpListener(IPAddress.Parse("172.25.14.165"), 7788); //[2]开始进行监听 tcpListener.Start(); //[3]等待客户端连接过来 TcpClient client = tcpListener.AcceptTcpClient(); //[4]取得从客户端发来的数据 NetworkStream stream = client.GetStream();//这是一个网络流,从这个网络流可以去的从客户端发来的数据 while (true) { byte[] data = new byte[1024]; /* * 0表示 从数组的哪个索引开始读取数据 * 1024 表示最大的读取数 * */ int length = stream.Read(data, 0, 1024); string message = Encoding.UTF8.GetString(data, 0, length); Console.WriteLine("收到了信息:" + message); } stream.Close(); client.Close(); tcpListener.Stop();//停止监听 Console.ReadKey(); } } }
客户端:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace TcpClient_客户端 { class Program { static void Main(string[] args) { TcpClient tcpClient = new TcpClient("172.25.14.165", 7788); NetworkStream stream = tcpClient.GetStream();//通过网络流进行数据的交换 while (true) { //read来读取数据,write用来写入数据就是发送数据 string message = Console.ReadLine(); byte[] data = new byte[1024]; data = Encoding.UTF8.GetBytes(message); stream.Write(data, 0, data.Length); } stream.Close(); tcpClient.Close(); Console.ReadKey(); } } }
看起来是不是比直接使用Socket要简单点。这就是面向对象封装特性的魅力所在。
相关文章推荐
- 网络端口号大全
- 网络层和传输层
- TCP-IP协议详解学习笔记-- ICMP
- 网络中的那些事儿(五)之校园网规划综述
- 使用iptables作为网络防火墙构建安全的网络环境
- win10系统iis下部署搭建https (ssl/tls)本地测试环境
- 内核日志 TCP: Possible SYN flooding on port
- PHP 模拟 HTTP 摘要认证(Digest )
- 推荐一门“神经网络”相关的视频课程
- ASI与AFN网络请求的的比较
- ASI与AFN网络请求的的比较
- 使用http原生包抓取RestAPI接口内容并解析为实体的示例
- http协议
- 3145 汉诺塔游戏——http://codevs.cn/problem/3145/
- java发送http的get、post请求
- 神经网络:卷积神经网络CNN
- 卷积神经网络(CNN)
- 网络基础:双绞线
- 数据挖掘(10):卷积神经网络算法的一个实现
- CNN卷积神经网络在自然语言处理的应用