日期:2014-05-20  浏览次数:20606 次

TCP转发如何实现?

客户端ABCD都通过TCP连接到服务器S,如何实现A发送一条消息,BCD都能收到? 具体实现原理是怎么样的?

------解决方案--------------------
Thread A:
  while true:
    message:=tcpChannel.readMessage()
    for each channel in tcpChannels[B,C,D]:
        channel.send(message)
  end while
------解决方案--------------------
还要在sendMsgToClient之前加一步 if (sock != clntSock)
------解决方案--------------------
当有多个客服端连接上来的时候,服务器端用集合(当然用什么自己决定)把客服端的socket保存下来,然后服务器端再从保存下来的集合中取出socket,根据socket把消息转发给各个客服端。