如题,服务器case FD_READ:能接收到客户端发来是消息,但是如何来判断是哪个客户端发来的消息呢,我把客户端的SOCKET都放在一个数组里存着,在case FD_ACCEPT:的时候存的 ,是不是只能在客户端发送消息的时候加一个标志位来区别哪个客户端?有没有别的方法啊?

解决方案 »

  1.   

    cast FD_READ:
    这里会得到一个socket的值,这个已经是标识了,所有socket都是唯一的,如果这些值你有记录到,自然能查到哪个是哪个.
      

  2.   

    case FD_READ:int x=recv(mysocket,(char*)sBuf,MAX_PATH*sizeof(TCHAR),0); 怎么得到SOCKET标识啊
      

  3.   


    mysocket这个是SOCKET类型,你说你把所有客户端的SOCKET都放在一个数组里存着,不是可以根据这个来查现在正在接收的是哪个客户端的消息吗?如果mysocket不是这个函数内部的变量,那你的这个回调函数就写得有问题,看一下这个函数的参数先!