我正在尝试执行以下操作:
// 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,说“通常只允许使用每个套接字地址(协议/网络地址/端口)”。
由于我使用的是其他端口,我认为服务器应用可以在多个端口上监听?
还有其他办法吗?
答案 0 :(得分:3)
您的代码正常,可在我的包装盒上使用。只有在两个听众成功启动后才会弹出防火墙。 正如每个人都指出的那样,你在12000端口打开了一个应用程序。
执行netstat -a -b
并查找正在使用它的应用程序。
示例:
TCP [::]:12000 [::]:0 LISTENING
[services.exe]
答案 1 :(得分:2)
应用可以在任意数量的端口上设置tcp侦听器。
如错误所示,在该特定端口上还有其他内容。
我的猜测是你的应用程序运行了两次,或者你没有正确清理它。请注意,您必须单独显式关闭每个接受的连接。停止不会为你做这件事。
参考MSDN。