C#socket编程_TCPunity聊天室.03

TCPlistener和TCPclient

这里说一下socket编程中的两个类TCPlistener和TCPclient,其中listener顾名思义就是监听,是服务器端用的类,TCPclient是客户端用的类,这两个类把socket封装好,当需要传输时可以直接调用,不需要重新定义socket。用listener和client步骤也是差不多,直接上代码:

//1.创建TcpListen对socket进行了一层封装,这个类里面自己会去创建socket对象
TcpListener listener=new TcpListener(IPAdrress.Parse("192.xxx.xxx.x"),8888);

//2.开始监听
listener.Start();

//3.等待客户端连接
TcpClient client=listener.AcceptTcpClient();

//4.取得客户端的数据流
NetworkStream stream=client.GetStream();//得到了一个网络流,从这个网络流读取数据

byte[] data=new byte[1024];
while(true)
{
//0表示从数组的哪个索引开始存放数据
              //1024表示最大读取的字节数
int lentgth=stream.Read(data,0,1024);
string message=Endcoding.UTF8.GetString(data,0,length);
Console.WriteLine("收到消息为:"+message);
}
//接受完关闭要释放资源
stream.Close();
client.Close();
listener.Close();
Console.ReadKey();

接着是客户端代码,首先要注意TCPlistener和TCPClient定义时是不一样的

当我们创建tcpclient对象的时候,就会跟server去建立连接
TcpClient client = new TcpClient("192.168.101.6",7788);

 NetworkStream stream = client.GetStream();
  while(true)
            {
                string message = Console.ReadLine();
                byte[] data = Encoding.UTF8.GetBytes(message);

                stream.Write(data, 0, data.Length);
            }
            stream.Close();
            client.Close();
            Console.ReadKey();

显然,用这两个类写通讯会方便很多,但TCP协议有时候缺不能满足需求,接着会说下另一个用的多的协议UDP,UDP协议速度快,占用少,但是不可靠容易丢包,UDP不需要建立连接,也没有服务端和客户端之分,所以UDP只有UdpClient类。

                                                未完待续
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值