聊天室遇到的有关问题

聊天室遇到的问题

多个客户端连接服务端, 可以发送消息给服务器,已经成功了。

发送后。可以立即转发给所有的 (其他客户端),服务器维护着链表, 
我已经实现了

我还差一个功能,没思路。

客户端需要和客户端之间通信。 如现在有3个客户端和服务器通信,分别是A B C

A想 和 B 私聊。 所以, A必须获得B这个socket. 

我的思路是: 服务器开一个定时器, 隔几秒把 链表发送给 各个客户端,然后客户端A获取到列表后,

就和B通信。

任何两个基于tcp通信的机子,必须有一台是 服务器,进行listen.

A 本身作为 客户端,和服务器通信了,连接客户端,

此时又要和B进行通信, 如果它作为客户端,去连接B, 那么B主机上的那个socket,是不够使用的。

至少得开2个socket.

总结,每个客户端 有1个socket连接 服务器, 还需要一个socket作为与其他客户端通信.

谁有这方面的范例,提供一下,谢谢了啊



------解决方案--------------------
我的理解好像是一个socket链接了以后,就可以直接用这个sokcet进行通信了,不需要再次由B发送请求,A再监听。如果连续开2个sokect是可以实现,但是每台机子就需要有2个端口了,一个监听,一个发送。其实建立链接之后,A和B就能相互通信了。至于要拓展C也能通信,那肯定需要另外一个socket。
------解决方案--------------------
参考这个,http://download.****.net/detail/gaoyunjie/3540407,多个客户端连接服务器,可以私聊
------解决方案--------------------
我有两个思路,
一是,在你每个client上面都通过server获得其它client的ip和端口,然后你就往你想要发送的ip和端口上发送消息就行了,你在每个client上只监听一个socket就行了,可以在消息的开头设置一些标志,来表示消息是从哪来的,是聊天记录还是server的一些反馈
二是,你把消息发送给server,server通过你发送过来的信息,来判断发送到哪个client上,然后server发送过去就可以了,client所做的事情,和上一个差不多。
------解决方案--------------------
探讨

我有两个思路,
一是,在你每个client上面都通过server获得其它client的ip和端口,然后你就往你想要发送的ip和端口上发送消息就行了,你在每个client上只监听一个socket就行了,可以在消息的开头设置一些标志,来表示消息是从哪来的,是聊天记录还是server的一些反馈



第二段话没看, 我所知道的通信,tcp的,必须有一台机子进行监听

所以客户端连接服务……

------解决方案--------------------
可以将所有消息经由服务器转发,服务器知道怎么和各个客户端通信。