【问题标题】:TcpListener : Only one usage of each socket address (protocol/network address/port) is normally permittedTcpListener :每个套接字地址(协议/网络地址/端口)通常只允许使用一次
【发布时间】:2019-08-01 14:10:04
【问题描述】:

在启动 TcpListener 时,解决 .net 中的“每个套接字地址(协议/网络地址/端口)通常只能使用一次”错误的解决方案。

【问题讨论】:

  • 你只能让一个 Listener 监听一个端口号。 TcpListener 将允许多个客户端连接到端口号。您不需要打开第二个侦听器。当多个客户端连接时,您应该使用异步方法。您可能会收到错误消息,因为另一个应用程序已经在使用该端口号。要从 cmd.exe 中查看端口是否正在使用,请键入 >Netstat -a
  • @jdweng 如何解决这个异常?
  • 不要为一个端口号打开多个监听器,或者确保在打开新监听器之前关闭/处置使用该端口的监听器。
  • 问题是为什么你认为你需要在那个端口上安装第二个监听器?

标签: c# .net tcp


【解决方案1】:

正如 cmets 中的其他用户所说的那样

每个套接字地址(协议/网络地址/端口)通常只允许使用一次

当您已经在指定端口上打开了 TcpListener 时会发生错误,无论是您的侦听器还是其他应用程序。 正如@jdweng 所说,要从 cmd.exe 中查看端口是否正在使用,请键入 >Netstat -a。

此外,除了 netstat,您还可以使用TCPview 程序,它显示当前正在使用的所有端口并显示哪个进程使用它们。

【讨论】:

  • 记录netstat -ano(例如)还将显示与每个套接字句柄关联的进程ID。如果需要,然后可以使用任务管理器来进一步识别进程。我经常做netstat -ano | find "xxxx" 之类的事情来快速识别端口xxxx是否在使用以及由谁使用。
猜你喜欢
  • 2019-05-03
  • 2017-06-09
  • 2011-01-15
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多