初学java,想写一个简单的聊天程序,现在已经实现了多个客户端连接到服务器上,任意一个客户端的消息发送到服务器上,然后服务器会把这个消息转发给每个客户端,我想实现其中两个客户端的“私聊”,这该如何实现啊?还有一个问题就是怎样启用另外一个线程去控制客户端的连接与断开喃?
拜托各位啦,指点一下,谢谢!

解决方案 »

  1.   

    现在已经实现了多个客户端连接到服务器上,任意一个客户端的消息发送到服务器上,然后服务器会把这个消息转发给每个客户端
    ===========================
    你可以继续用转发的方式嘛!!!但在C1发送给S时,由S从你的消息中获取到C2的IP地址,接着就发到C2上啊。。
    这就相当于私聊了啊。也就是说,你可以自己设计一个简单的协议,在消息内容中加入相应的信息,然后另一端按相应的规则反向解析出来即可!
      

  2.   

    还有一个问题就是怎样启用另外一个线程去控制客户端的连接与断开喃?====================================
    将TCP的方式改用UDP的方式即可!
      

  3.   

    给每个客户端起个名字,将客户端的信息包括(socket,名字,IP等)打包成一个对象一个客户端要找另一个客户端可以通过名字去找然后根据名字找到客户端的对象,也就找到了这个客户端的socket,
    让服务器把消息发给这个socket对应的客户端就可以了