【问题标题】:Problems setting a TcpClient local endpoint in C#在 C# 中设置 TcpClient 本地端点的问题
【发布时间】:2010-02-18 06:33:07
【问题描述】:

为什么下面的代码在 C# 中不起作用?

var c1 = new TcpClient(new IPEndPoint(IPAddress.Any, 8787));
var c2 = new TcpClient(new IPEndPoint(IPAddress.Any, 8788));
c1.Connect("localhost", 8788);

我收到“无法建立连接,因为目标机器主动拒绝了它”。因此,TcpClient 构造函数似乎没有绑定端口,但我尝试了 Socket.Bind() 函数也没有运气。

【问题讨论】:

  • 您的意思是在端口 8788 上运行“服务器”吗?
  • 它更像是一个点对点的东西,所以它们都不是服务器。由于程序的性质,我还需要指定本地端口(不能将其设置为任何并随机化)。

标签: c# sockets tcp tcpclient


【解决方案1】:

两个TcpClient 不能互相交谈。您需要一个TcpClient 和一个TcpListener

【讨论】:

  • 有没有更简单的方法?我不需要接受多个连接。 TcpClient 是否根本无法响应 SYN?
  • @Nayruden,不,TcpClient 无法接受连接。要进行通信,您需要一个客户端和一个服务器。客户端连接到服务器。如果您真的在谈论始终在同一台计算机上进行通信,进程间通信,那么如何进行 IPC 有很多选择,但 TCP 仍然很常见,也是最简单的方法之一。
【解决方案2】:

问题是您没有在监听连接。你必须使用 TcpListener 或类似的。

【讨论】:

    【解决方案3】:

    我同意山姆的观点。你可以找到一个例子here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      相关资源
      最近更新 更多