Boost :: asio服务器/客户端套接字,访问权限和端口问题

时间:2014-01-31 13:38:59

标签: visual-c++ boost-asio windows-7-x64

一旦我在我的客户端上实现了重新连接,我的服务器(基于boost :: asio)出现了一个新错误,但我甚至不确定这是否是原因。场景是这样的:

  1. 我运行Client.exe,可以在服务器未运行时重新连接。 Client.exe创建了几个独立连接到我的服务器的对象。因此,我的服务器的多个连接都是从同一个进程创建的。
  2. 因为我还没有运行服务器,所以每个对象都会尝试每隔3秒重新连接一次(其中一些并发,所以并非总是在同一时间)。
  3. 启动服务器时出现有时问题:我收到“尝试以其访问权限禁止的方式访问套接字”错误。
  4. 用TCPView查看我发现一切看起来都很好而且很有效。服务器侦听端口7000.但是当出现这个问题时,我可以看到TCPView的一个奇怪的东西:

    Client.exe  9016    TCP ME  7000    localhost   7000    ESTABLISHED
    

    当服务器运行时,这怎么可能?同一个港口?我查了一下,没有其他进程在这个端口上监听!如果对方听不到任何内容,如何在7000端口上存在和ESTABLISHED连接。然后,当然,客户端正在使用该端口,我收到此错误(不确定为什么我会收到此错误,而不是“端口已在使用中”。

    注意:我没有防病毒软件,Windows防火墙已停用,其他进程没有使用端口7000.我只有一台服务器可以监听端口7000和连接服务器的客户端。几次停止(干净地)并启动服务器后,会出现这种奇怪的连接。

    编辑:服务器和客户端在同一台机器上运行

0 个答案:

没有答案
相关问题