java使用socket网络编程实现qq互聊,一个服务器和多个客户端

本代码实现的功能是:利用socket网络编程,实现一个服务器和多台客户端的互聊!

知识点:多线程     IO流         socket网络编程等等!!!!

首先写服务器:(就不多做解释了)

public class Server {
    public static void main(String[] args) {
        try { 
            ServerSocket server = new ServerSocket(5500);  
            while (true) {
                Socket socket = server.accept();
                ServerThread st = new ServerThread(socket);
                st.start();
            } 
                
        } catch (IOException e) {  
            e.printStackTrace();  
        }
    }
   
}

然后写多线程

public class ServerThread extends Thread {
    Socket socket;
    
    public ServerThread(Socket socket) {
        super();
        this.socket = socket;
    }

    @Override
    public void run() {
        try {
            DataInputStream in = new DataInputStream(socket.getInputStream());  
            DataOutputStream out = new DataOutputStream(socket.getOutputStream());  
            Scanner scanner = new Scanner(System.in);  
            while (true) {  
                String accpet = in.readUTF();  
                System.out.println(accpet);  
                String send = scanner.nextLine();  
                out.writeUTF("管哥:" + send);  
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
    }
    
}

最后写客户端:

public class Client {
    public static void main(String[] args) {
        try {  
            Socket socket = new Socket("localhost", 5500);  
            try {  
                DataInputStream in = new DataInputStream(socket.getInputStream());  
                DataOutputStream out = new DataOutputStream(socket.getOutputStream());  
                Scanner scanner = new Scanner(System.in);  
                while (true) {  
                    String send = scanner.nextLine();  
                    out.writeUTF("杨天阳:" + send);  
                    String accpet = in.readUTF();  
                    System.out.println(accpet);  
                }  
  
            } finally {  
                socket.close();  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        } 
    } 
}

如果想实现多客户端只要要把客户端的代码多复制几个就好;

java使用socket网络编程实现qq互聊,一个服务器和多个客户端_第1张图片

实现效果如下图

服务器的实现截图:

java使用socket网络编程实现qq互聊,一个服务器和多个客户端_第2张图片


客户端的实现截图:

java使用socket网络编程实现qq互聊,一个服务器和多个客户端_第3张图片

java使用socket网络编程实现qq互聊,一个服务器和多个客户端_第4张图片


你可能感兴趣的:(Java)