编写一个简单聊天程序,需要服务器中转,服务器端用win32API编程,客户端无所谓。
现在有一个问题:当多个客户端连接在服务器上,在服务器端调用Recv函数接收信息时,怎样判定,此次接收信息时,该用哪一个套接字接收呢?也就是怎样判定,此次信息,是哪一个客户端发送过来的呢?
小弟菜鸟,恳请大侠们帮助,谢谢!!!

解决方案 »

  1.   

    使用recvfrom函数
    int recvfrom(
      SOCKET s,
      char* buf,
      int len,
      int flags,
      struct sockaddr* from,//客户端的IP地址
      int* fromlen
    );
      

  2.   

    每次监听到客户端的链接时,accept会返回一个套接字,并使用这个套接字与相应的客户端通信,如果连接5个客户端,那么,在每次调用Recv函数接收信息时,其中的参数socket,改用哪一个呢?
    谢谢!
      

  3.   

    如果,想用TCP通信,应该怎样处理以上问题呢?
    谢谢!
      

  4.   

    accept返回的套子节就是用recv第一个参数数据,这个标识是唯一的。
      

  5.   

    当accept返回以后,比如说,连接了5个套接字,那么当对方的客户端发送信息过来时,该用accept返回的哪一个套接字做参数呢?
      

  6.   

    可以用WSAAsyncSelect设置FD_READ消息,套子节可读的话就有数据发过来了。最好去看下孙鑫的16课的视频里有说。
      

  7.   

    beyond0824做游戏的?想做游戏聊天吧?这个会做了很赚钱啊....这样的技术问题有昂贵技术咨询费吧,费用怎么分啊?
     
      

  8.   

    建议你看本书,《windows网络与通讯程序设计》~~
      看下里面的那几种模型,应该能解决你的问题~~~