一个socket server,侦听ing,如果接收到一个客户端的请求,就建立连接。请问如果多个客户端连接上来,比如本机上多个client连接上来。server要给client端发消息是如何区分client端的呢。对方的ip都是127.0.0.1。

解决方案 »

  1.   

    每次收到连接后不仅仅是得到对方的IP,也得到对方的端口号啊,IP+port决定了对方的地址!
    但是如果只是发送消息的话就不用管对方的IP和port了,直接用连接上你服务器的那个SOCKET发送就可以 了!
    int send(
      SOCKET s,
      const char FAR* buf,
      int len,
      int flags
    );
    不需要对方的地址之类的东东!
    顺便说一下,如果本机上开启多个客户端的话,尽管IP一样,但是各个客户端会自动选择不同的端口号!
    当然了,客户端也可以调用bind函数,但是就要自己选择不同端口号了,否则以后启动的客户端就无法绑定了!