当客户端1发消息发给了服务器端以后,服务器端怎么找到目的客户端2,并把消息转发给他呢

解决方案 »

  1.   

    你的服务器端需要一个数据集MAP之类来记录客户端名称和IP地址,,当你收到客户端1的消息,把他转发给客户端2,只要到数据集中找到对应的客户端2的IP发过去就行了。
      

  2.   

    你可以在客户端与服务器建立连接的时候 建一个类管理这些连接 像是存储用户号和与之对应的Socket 然后当服务器发发送的时候 根据用户号找到相应的链接 就可以发送了
      

  3.   

    那应该如何发送呢,你的意思是客户端a 直接发送给客户端b  吧是使用什么标示客户端呢端口号与IP?
      

  4.   

    客户端和服务端建立SOCKET链接的时候,就分配给这个客户端一个唯一值,然后把这个值和SOCKET塞入MAP表。下一次需要找这个客户端,通过这个唯一值就可以查询到这个SOCKET对象,就可以向这个客户端发送消息了
      

  5.   


    =================================
    可以这样理解,获取权限,即服务器验证正确,授于客户端2的IP地址给客户端a即可。
      

  6.   

    客户端在与服务端连接后服务端Socket就已经记录客户端的IP信息,这个已经被封装好了的
      

  7.   

    那么这个map表是存在客户端的还是服务器端的 那个唯一的值又是什么值啊,就是 是什么名称
      

  8.   

    服务端要对连接的客户端有管理啊
    相当于一个客户端的key对应一个客户端
      

  9.   

    那应该就是在服务器处存储了 所有连接服务器的 客户端的IP地址呗 那 一般情况下 另这个权限是什么呢 ,而且这个验证应该是开始的时候验证是吧 等客户端之间聊天了之后就不需要验证了吧,然后客户端之间就直接发送信息了,不需要再通过服务器了。可是如果 我是在一台机器上模拟 那IP地址不就是一个吗 那又应该如何区分呢? 请引用一下我的话再回答,谢谢啦
      

  10.   


    map表肯定是存在于服务端的,用来保存对应连接用户的SOCKET对象
    唯一值就是自己分配一个可以标示这个SOCKET对象的ID值,这个ID作为键,SOCKET对象作为值存储到MAP表里