c# - TcpClient 抛出 SocketException

标签 c# tcp

我得到了以下代码:

public static readonly IPEndPoint RootNode = new IPEndPoint(IPAddress.Parse("213.226.18.82"), 8333);

public static void Main(string[] args)
{
    TcpClient tcpClient = new TcpClient(RootNode);
}

这将抛出一个 SocketException 消息 The requested address is not valid in its context。 现在奇怪的是这段代码有效:

public static readonly IPEndPoint RootNode = new IPEndPoint(IPAddress.Parse("213.226.18.82"), 8333);

public static void Main(string[] args)
{
    TcpClient tcpClient = new TcpClient();

    tcpClient.Connect(RootNode);
}

这里有什么区别?

最佳答案

https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.tcpclient%28v=vs.110%29.aspx 的文档中它谈到了这个构造函数:

TcpClient(IPEndPoint): Initializes a new instance of the TcpClient class and binds it to the specified local endpoint.

所以在这里它说它将把它绑定(bind)到本地地址,就像你正在监听某个端口一样。 Connect() 命令会将您连接到一个远程 端点。这应该是不同之处。

关于c# - TcpClient 抛出 SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023427/

相关文章:

c# - 如何在可移植类库中使用PCLStorage?

c# - 拉丁语的 CultureInfo

c++ - 套接字上的FTP写入错误的文件和不同大小的C++

http - Golang 如何使用 keepalive 处理优雅关机

C#.Net - 线程在一个循环中抓取相同的文件

c# - 跨多个 Rx 主题的调用订单是否可以保证订单?

c# - 如何在 C# 中检索证书信息以进行客户端身份验证

c++ - 解析网络头时字段的字节顺序

debugging - 以太网(或至少 TCP)数据包调试,具有设置断点和修改数据包的能力

.NET 异步 TcpListener/TcpClient 问题