Windows TCP / IP侦听器服务"通常只允许使用每个套接字地址(协议/网络地址/端口)"

时间:2015-03-08 21:02:55

标签: c# multithreading sockets tcplistener

我有一个监听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();
    }

1 个答案:

答案 0 :(得分:1)

我刚刚测试了您的代码,它可以在我的计算机上运行。 如果您想知道哪个程序正在您的计算机上使用该端口,我建议您使用&#34; tcpview&#34;微软制作的SysInteralSuite工具。

你可以在这里找到它。 https://technet.microsoft.com/en-us/sysinternals/bb842062.aspx