网络 I/O 编程全解析
1. 网络 I/O 基础与异步处理
在实际应用中,传统的网络 I/O 处理方式扩展性较差,大多数服务器每分钟需要处理数千甚至数万个连接。为了应对高并发连接,应用程序采用异步 I/O 来接受客户端的连接请求。具体来说,当有客户端发起连接时,服务器接受请求并创建一个新的套接字(socket)与客户端建立连接,之后原始的监听器会继续监听下一个客户端的连接请求。这样,服务器就能处理大量的连接,每次接受一个连接就会创建一个新的套接字。客户端并不知道服务器创建了新的套接字,在客户端看来,它已经成功连接到了所请求的 IP 地址和端口。需要注意的是,这种基于 TCP/IP 的连接与使用无连接协议的 UDP 不同,一旦建立连接,客户端和服务器就可以直接通信,无需为每个数据包重新寻址。
2. 创建网络流式服务器
要创建一个用于 TCP/IP 流式传输的网络服务器,可以按照以下步骤操作:
1.创建 TcpListener 对象:选择一个 TCP/IP 端口进行监听,这里我们选择端口 65000。
IPAddress localAddr = IPAddress.Parse("127.0.0.1"); TcpListener tcpListener = new TcpListener(localAddr, 65000);- 启动监听器:调用
Start()方法开始监听客户端的连接请求。