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

时间:2013-06-19 09:21:35

标签: c# .net

请考虑以下事项:

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

为什么我必须告诉tcpClient首先绑定到ep并连接到ep。与刚刚Connect()相比,我对已经绑定的终点似乎很奇怪。

2 个答案:

答案 0 :(得分:4)

接受IPEndpoint的{​​{3}}用于绑定本地端点地址。 constructor旨在传递远程端点地址。这两件事中的一件与另一件事相矛盾。

构造

  

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

Connect

  

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

但由于我们不知道ep是本地还是远程端点,我无法告诉你哪一个是错误的。我猜你自己已经指定了0,因此你需要为Connect调用确定一个不同的端点 - 你想要连接什么?到?

答案 1 :(得分:0)

不确定我是否遗漏了一些东西,但是有一个默认的构造函数。

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