我正在尝试做以下几件事:
// Create IPv4 TCP/IP sockets.
TcpListener listener = new TcpListener(IPAddress.Any, 11000);
TcpListener listener2 = new TcpListener(IPAddress.Any, 12000);
// Listen for incoming connections.
listener.Start();
listener2.Start();
对TCPListener.Start()的第二次调用抛出一个socketexception,声明“通常只允许对每个套接字地址(协议/网络地址/端口)使用一次”。
由于我使用的是不同的端口,我认为一个服务器应用程序可以监听多个端口?
有没有其他方法可以做到这一点?
发布于 2010-12-21 19:21:19
你的代码没问题,可以在我的机器上运行。只有在两个监听程序都成功启动后,防火墙才会弹出。正如每个人都指出的那样,您在端口12000上打开了一个应用程序。
执行netstat -a -b
并查找哪个应用程序正在使用它。
示例:
TCP [::]:12000 [::]:0 LISTENING
[services.exe]
发布于 2010-12-21 19:17:15
应用程序可以在任意数量的端口上设置tcp侦听器。
如错误所示,在该特定端口上有其他侦听对象。
我的猜测是,你的应用程序正在运行两次,或者你在运行之后没有进行适当的清理。请注意,您必须分别显式关闭每个接受的连接。Stop不会为你做这件事。
MSDN上的引用。
https://stackoverflow.com/questions/4502985
复制相似问题