【发布时间】:2019-01-01 05:05:25
【问题描述】:
我尝试监听服务器上的特定端口。我编写了一个简单的控制台应用程序,但出现错误:
每个套接字地址(协议/网络地址/端口)只能使用一次 通常是允许的。
但是,我没有找到任何侦听该端口的进程。资源管理器和 CurrPorts 不显示任何信息。
我的代码(所有代码):
var ipEndPoint = new IPEndPoint(IPAddress.Any, 7001);
var tcpListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
tcpListener.Bind(ipEndPoint);
tcpListener.Listen(100);
我的问题是:
- 如何找到监听端口的进程? Currports 没有显示,resmon 也没有显示。
- 为什么 node.js 监听端口并获取消息?有什么不同?
- 我想我有一个隐藏的线程,但我没有找到它。我使用 ProcessExplorer。
更新:
当我在服务器重置后运行我的控制台应用程序时,它工作正常。 但是,当关闭并重新打开应用程序时,它无法正常工作,并且出现上述异常。
【问题讨论】:
-
这可能会有所帮助stackoverflow.com/questions/41836209/…这个问题已经被问过很多次了,查看这个论坛上的其他解决方案
-
我尝试了该帖子中的所有可能性。但还是一样。 netstat -a 没有显示我的端口。所以第一个解决方案不起作用。第二个是不可能的,因为我添加了整个代码。只有4行。而且没有多线程,没有递归调用,实际上没有真正的监听。我只想绑定那个端口。
-
你能绑定到其他随机端口吗?即使您看不到任何正在侦听 7001 的内容,传出 TCP 连接仍然可能使用 7001 作为源端口。检查该端口的完整 netstat 输出。
-
我试试7002,绑定就ok了。
netstat -o -n -a | findstr 7001没有显示结果。
标签: c# sockets tcplistener