如何实现多用户聊天?就是多个人把信息发给服务器后,服务器在把这些信息返回给每一个人。这个如何实现?苍天啊。。想不通!老师让显示的格式是这样的,在聊天窗口中应该显示这个人的名字和他发送信息的内容 ,我就把这2个东西又封在一个类里了,直接把这个对象发给服务器,那么服务器应该怎么暂时的保存每个用户发的这个对象,然后又如何把它返回给每一个人呢?请教啊!!!!!不明白啊!

解决方案 »

  1.   

    客户端的话,平常怎么做还怎么做。
    服务器端的话就需要有个Vector来放置所有客户端请求的socket。当服务器端接收了客户端的请求后,就需要将这个socket放置在Vector中,然后服务器端对客户发来的信息对Vertor中的所有线程进行广播。这样每个客户端就行看到了。
    要是理解不了的话,明天写给你。
      

  2.   

    大概思路好像明白,不过不知道应该如何实现。
    package ldci.com.chatApp.server;import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;public class StartServer {
    private ServerSocket server;
    public StartServer(){
    try {
    // 1. 建立端口,绑定服务
    server = new ServerSocket(7655);
    new ServerThread().start();
    } catch (IOException e) {
    System.out.println("端口占用"+e);
    }
    }
    // 2.写内容部类,进行多客户监听
    class ServerThread extends Thread{
    public void run(){
    for(;;){
    // 3.开始监听,监听到套接字,并传递给处理套接字类
    System.out.println("开始监听");
    try {
    Socket fromClientSocket = server.accept();
    new ProcessRequest(fromClientSocket);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }

    public static void main(String[] args) {
    StartServer myServer = new StartServer();
    }}
    这是我写的服务器启动那的类,你说的存入Vector是在accept后吗?
      

  3.   

    这种差不多的代码网上应该能够找到很多,有java实现的,有c++实现的都有。
      

  4.   

    http://blog.csdn.net/closewbq/archive/2010/07/21/5751738.aspx
    去吧,刚写的!