本文内容
- 使用 TcpClient 和 TcpListener
- 创建 IP 终结点
- 创建 TcpClient
- 创建 TcpListener
- 具有 Socket 类的有限 TCP 控制
对于高级用户,强烈建议使用 Socket 类,而不是 TcpClient
和 TcpListener
。
若要使用传输控制协议 (TCP),有两个选项:使用 Socket 以获得最大控制和性能,或使用 TcpClient 和 TcpListener 帮助程序类。 TcpClient 和 TcpListener 是在 System.Net.Sockets.Socket 类的基础上建立的,并负责传输数据的详细信息以便于使用。
协议类使用基础 Socket
类提供简单的网络服务访问,没有维护状态信息的开销,也无需了解设置协议特定的套接字的详细信息。 若要使用异步 Socket
方法,可以使用 NetworkStream 类提供的异步法。 若要访问未被协议类公开的 Socket
类功能,必须使用 Socket
类。
TcpClient
和 TcpListener
代表使用 NetworkStream
类的网络。 使用 GetStream 方法返回网络流,然后调用此流的 NetworkStream.ReadAsync 和 NetworkStream.WriteAsync 方法。 NetworkStream
不拥有协议类的基础套接字,因此关闭它不会影响套接字。
1、使用 TcpClient
和 TcpListener
TcpClient 类使用 TCP 从 Internet 资源请求数据。 TcpClient
的方法和属性会摘录为了通过 TCP 请求和接收数据而创建的 Socket 的详细信息。 与远程设备的连接表示为流,因此可以使用 .NET Framework 流处理技术读取和写入数据。
TCP 协议与远程终结点建立连接,然后使用此连接发送和接收数据包。 TCP 负责确保将数据包发送到终结点,并在数据包到达时以正确的顺序对其进行汇编。
2、创建 IP 终结点
使用 System.Net.Sockets 时,将网络终结点表示为对象 IPEndPoint。 IPEndPoint
是使用 IPAddress 及其相应的端口号构造的。 在通过 Socket 发起对话之前,在应用和远程目标之间创建数据管道。
TCP/IP 使用一个网络地址和一个服务端口号来对唯一标识设备。 网络地址标识特定网络目标;端口号标识该设备要连接到的特定服务。 网络地址和服务端口的组合称为终结点,它在 .NET 中由 EndPoint 类表示。 会为每个受支持的地址系列定义 EndPoint
的后代;对于 IP 地址系列,类为 IPEndPoint。
Dns 类向使用 TCP/IP Internet 服务的应用提供域名服务。