多用户socket的问题。我的服务器端要求能够接收gps设备信息,也可以向gps设备发信息。我是这样实现的:先启动监听,接受到数据后,新建一个socket
Socket listener = (Socket)ar.AsyncState;
                Socket handler = listener.EndAccept(ar);                // Create the state object.
                state.workSocket = handler;
                
                handler.BeginReceive(state.buffer, 0, SocketSateObject.BufferSize, 0,
                    new AsyncCallback(ReadCallback), state);    然后接受数据,我处理数据的时候,保存该socket及设备号。当我需要向该设备发消息时,找到该设备对应的socket发送。该设备也可以接受到。
但是,设备无法用最初发消息的socket向server发信息。我必须新建一个发信息,但是发到500多条的时候,就接受不到了。大家给点建议我哪里错了。谢谢。

解决方案 »

  1.   

    是否已经断掉连接了,如connectclose字样。
      

  2.   

    gps设备初始socket没有显示断开,但发出去的数据在接受端监听不到.我的思路是正确的吗?比如设备向server发送登录信息之后,保存该socket.之后该设备发消息给server需要再创建新的soket?还是继续用登录server的socket?如果创建新的socket,收到gps数据之后是不是要把这个socket关掉?我保存的socket只能用来向设备发数据还是也可以接受,如果可以接受该怎样写代码?谢谢.
      

  3.   

    用active ports 检查下端口状态