Java socket实现简易聊天

效果图:
在这里插入图片描述在这里插入图片描述

**

  1. 服务端

**

public class MyServer  {
    public static void main(String[] args) {
        //创建到特定服务端口的套接字0-655535,
        int port = 10086;
        try {
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("server is running at"+serverSocket.getLocalSocketAddress());
            //建立套接字,获取socket对象
             Socket socket= serverSocket.accept();
            System.out.println("one client has connected the server,"+socket.getRemoteSocketAddress());

            //收据接收和发送
            while (true){
                //接受
                InputStream is = socket.getInputStream();
                Scanner scanner = new Scanner(is);
                String str = scanner.nextLine();
                System.out.println("client:"+str);
                //发送
                OutputStream os = socket.getOutputStream();
                PrintStream printStream = new PrintStream(os);
                Scanner input = new Scanner(System.in);
                String msg = input.nextLine();
                if("quit".equals(msg)) {
                    break;//结束服务端
                }
                printStream.println(msg);
                printStream.flush();
            }


        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

2.客户端

ublic class MyClient  {
    public static void main(String[] args) {
        String ip = "127.0.0.1";
        int port = 10086;
        try {
            Socket socket = new Socket(ip,port);
            String line=null;
            while (true){
                Scanner input = new Scanner(System.in);
                line = input.nextLine();
                if("quit".equals(line)) break; //结束客户端
                //发送消息
                OutputStream os = socket.getOutputStream();
                PrintStream printStream = new PrintStream(os);
                printStream.println(line);
                printStream.flush();
                //接受消息
                InputStream is = socket.getInputStream();
                Scanner scanner  =new Scanner(is);
                System.out.println("服务端:"+scanner.nextLine());

            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

改进参考我另一篇博客

发布了17 篇原创文章 · 获赞 2 · 访问量 684

猜你喜欢

转载自blog.csdn.net/qq_43615903/article/details/104114766
今日推荐