对于服务端的winsock数组来说,如果几个客户端发来请求,
他是一个一个按次序处理完,还是先能够同时处理呢?比如有两个客户端A,B 同时发来消息:
是先处理完 A的流程:
SckServer_ConnectionRequest(index As Integer, ByVal requestID As Long)
{
  //accept socket
}
SckServer_DataArrival(index As Integer, ByVal bxtesTotal As Long)
{
  do something
}然后处理B的流程:SckServer_ConnectionRequest(index As Integer, ByVal requestID As Long)
{
  //accept socket
}
SckServer_DataArrival(index As Integer, ByVal bxtesTotal As Long)
{
  do something
}还是他会同时处理A,B 的SckServer_DataArrival(index As Integer, ByVal bxtesTotal As Long)
{
  do something
}
这个事件

解决方案 »

  1.   

    SckServer_DataArrival(index As Integer, ByVal bxtesTotal As Long)
    {
      do something
    }
    那如果我要在这个函数里面处理的时间比较长,岂不是另外的人要等很多时间
    有没有什么好的方法呢?
    我试过用计时器,但是好像计时器也是一样的,如果定时器上一个任务没有完成,就不会定时触发了
    也就是说
    timer1_ontime()
    {
       do somthing
    }
    这里如果还没有做完,那么计时器下一次就不触发了,甚至用几个定时器也是一样,看来这个定时器,实在是一点用都没有啊
      

  2.   

    把SckServer_DataArrival事件中的代码封装到一个过程中,在SckServer_DataArrival事件中创建一个线程来处理接收到的数据。
    主程序只管接收数据,调用线程处理。