我是靠谱客的博主 土豪身影,最近开发中收集的这篇文章主要介绍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互聊,一个服务器和多个客户端的全部内容,希望文章能够帮你解决java使用socket网络编程实现qq互聊,一个服务器和多个客户端所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部