TcpListener(服务器)和TcpClient(客户端)

本文介绍了TCPListener和Socket在.NET框架下用于服务器端编程的不同之处。TCPListener是对TCP协议的封装,简化了服务端的监听操作,而Socket更底层,适用于传输层和应用层间的交互。示例代码展示了如何使用TCPListener启动服务器并接收客户端连接,以及客户端如何建立连接并发送数据。
摘要由CSDN通过智能技术生成

Socket监听与TcpListener监听的区别和用法

socket是针对应用层和传输层之间封装的接口

Tcplistener是对socket tcp协议封装的接口,更便于开发

一.服务器

在NET框架下可以方便的使用tcplicenter和tcpclient两个类来实现tcp编程,而无需直接操作socket,这也是这两个类方便的地方。对于tcplistener可以理解是用在服务端的,仅需要设置一个监听端口即可,如

var listener = new TcpListener(9000);//监听9000端口

然后调用 Start方法开始监听:

 listener.Start(10);//挂起队列最大长度10个

再然后就是等待客户端的接入了,通常可以用一个无限循环来接受不断请求的客户端

static void Main(string[] args)
        {
            //1.声明一个listener:套接字和接口都绑定好了
            TcpListener listener = new TcpListener(IPAddress.Parse("192.168.0.100"), 7788);
            //2.开始监听
            listener.Start();
            //3.等待客户接入
            TcpClient tcpClient = listener.AcceptTcpClient();
            //4.创建一个流用来收发数据
            NetworkStream stream =  tcpClient.GetStream();
            //读入,也就是接受一个数据
            byte[] data = new byte[1024];
            int length = stream.Read(data, 0, 1024);
            string message = Encoding.UTF8.GetString(data, 0, length);
            Console.WriteLine(message);
            //5.关闭相应的流和监听器
            stream.Close();
            listener.Stop();
            Console.ReadKey();
        }

二.客户端

static void Main(string[] args)
        {
            //1.声明一个客户端
            TcpClient tcpClient = new TcpClient("192.168.0.100",7788);
            //2.声明一个流用来读写数据
            NetworkStream stream= tcpClient.GetStream();
            string message = Console.ReadLine();
            byte[] data = Encoding.UTF8.GetBytes(message);
            stream.Write(data, 0, data.Length);
            //3.关闭相应的东西
            stream.Close();
            tcpClient.Close();
            Console.ReadKey();
        }

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值