为什么没有TcpClient.Connect的无参数实现?

本文关键字:参数 实现 Connect TcpClient 为什么 | 更新日期: 2023-09-27 18:18:57

考虑以下内容:

IPEndPoint ep = new IPEndPoint(ip, 0);
TcpClient tcpClient = new TcpClient (ep);
tcpClient.Connect(ep);

为什么我必须告诉tcpClient首先绑定到ep,然后连接到ep。对比Connect()和已经绑定的终点,我看起来很奇怪。

为什么没有TcpClient.Connect的无参数实现?

接受IPEndpoint的构造函数用于绑定本地端点地址。Connect意味着传递一个远程端点地址。这两件事之一是相互矛盾的。

构造函数:

初始化TcpClient类的新实例,并将其绑定到指定的本地端点。

Connect:

使用指定的远程网络端点将客户端连接到远程TCP主机。

但是因为我们不知道ep是本地端点还是远程端点,所以我不能告诉你哪个是错误的。我猜在本地端点,因为你已经指定了0,在这种情况下,你需要为你的Connect调用识别一个不同的端点-你想连接到什么?

不确定这里是否遗漏了什么,但是有一个默认构造函数。

http://msdn.microsoft.com/en-us/library/aa329755 (v = vs.71) . aspx