【发布时间】:2015-05-10 00:14:28
【问题描述】:
我有一个侦听 tcp/ip 连接的 Windows 服务。当我运行该服务时,我收到错误“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”。我可以毫无问题地在控制台应用程序中运行代码。
服务开始并在自己的线程上创建侦听器:
protected override void OnStart(string[] args)
{
this.tcpListener = new TcpListener(IPAddress.Parse(IpAddress.Any), 8100);
this.listenThread = new Thread(new ThreadStart(ListenForClients));
this.listenThread.Start();
}
启动监听器:
private void ListenForClients()
{
this.tcpListener.Start(); //<-----Produces the error
System.Threading.Thread.Sleep(5000);
this.tcpListener.Stop();
}
【问题讨论】:
-
你确定你的开发环境没有监听那个端口吗?也许是一个冻结的控制台应用程序?您是否停止线程并关闭端口?
-
原来如此,谢谢。
标签: c# multithreading sockets tcplistener