Visual C#网络编程之 TCP
作者:宋华 来源:c#资源网 加入时间:2003-6-28 阅读次数:
阅读选项: 文字
黑色
背景
白色
字号
9 pt
字型
正常
自动
滚屏[左键停止]
前一篇《Visual C#.Net 网络程序开发之 Socket》中说到:支持 Http、Tcp 和 Udp 的类组成了 TCP/IP
三层模型(请求响应层、应用协议层、传输层)的中间层-应用协议层,该层的类比位于最底层的 Socket
类提供了更高层次的抽象,它们封装 TCP 和 UDP 套接字的创建,不需要处理连接的细节,这使得
我们在编写套接字级别的协议时,可以更多地尝试使用 TCPClient 、 UDPClient 和 TcpListener,而
不是直接向 Socket 中写。它们之间的这种层次关系示意如下:
可见,TcpClient 类基于 Socket 类构建,这是它能够以更高的抽象程度提供 TCP 服务的基础。
正因为这样,许多应用层上的通讯协议,比如 FTP(File Transfers Protocol)文件传输协议、
HTTP(Hypertext Transfers Protocol)超文本传输协议等都直接创建在 TcpClient 等类之上。
TCPClient 类使用 TCP 从 Internet 资源请求数据。TCP 协议建立与远程终结点的连接,然后使
用此连接发送和接收数据包。TCP 负责确保将数据包发送到终结点并在数据包到达时以正确的顺序对
其进行组合。
从名字上就可以看出,TcpClient 类专为客户端设计,它为 TCP 网络服务提供客户端连接。
TcpClient 提供了通过网络连接、发送和接收数据的简单方法。
若要建立 TCP 连接,必须知道承载所需服务的网络设备的地址(IPAddress)以及该服务用于通讯
的 TCP 端口 (Port)。Internet 分配号码机构 (Internet Assigned Numbers Authority, IANA) 定义公共服
务的端口号(你可以访问 http://www.iana.org/assignments/port-numbers 获得这方面更详细的资料)。
IANA 列表中所没有的服务可使用 1,024 到 65,535 这一范围中的端口号。要创建这种连接,你可以
选用 TcpClient 类的三种构造函数之一:
1、public TcpClient()当使用这种不带任何参数的构造函数时,将使用本机默认的 ip 地址并将使用
默认的通信端口号 0。这样情况下,如果本机不止一个 ip 地址,将无法选择使用。以下语句示例了如
何使用默认构造函数来创建新的 TcpClient:
TcpClient tcpClientC = new TcpClient();
2、public TcpClient(IPEndPoint)使用本机 IPEndPoint 创建 TcpClient 的实例对象。上一篇介绍过了,
IPEndPoint 将网络端点表示为 IP 地址和端口号,在这里它用于指定在建立远程主机连接时所使用的本
地网络接口(IP 地址)和端口号,这个构造方法为使用本机 IPAddress 和 Port 提供了选择余地。下面
的语句示例了如何使用本地终结点创建 TcpClient 类的实例:
评论0