zoukankan      html  css  js  c++  java
  • Java实现一个简单的聊天小程序

    服务端代码:

    package com.example.nettypractice.tcp;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.nio.charset.StandardCharsets;
    import java.util.Scanner;
    
    /**
     * @description: TCP服务端
     * @author: YangWanYi
     * @create: 2021-11-24 22:16
     **/
    public class ServerTcp {
        public static void main(String[] args) {
            ServerSocket serverSocket = null;
            Socket accept = null;
            InputStream is = null;
            OutputStream os = null;
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.println("服务端启动成功……");
                serverSocket = new ServerSocket(9999);
                accept = serverSocket.accept();
                System.out.println("接收到客户端的连接请求……");
                String msg;
                os = accept.getOutputStream();
                is = accept.getInputStream();
                byte[] bytes = new byte[1024];
                int len;
                while (true) {
                    System.out.println("请输入:");
                    msg = scanner.nextLine();
                    os.write(msg.getBytes(StandardCharsets.UTF_8));
                    len = is.read(bytes);
                    System.out.println("来自客户端的消息:" + new String(bytes, 0, len));
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    accept.close();
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
            }
        }
    }

    客户端代码:

    package com.example.nettypractice.tcp;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.nio.charset.StandardCharsets;
    import java.util.Scanner;
    
    /**
     * @description: TCP客户端
     * @author: YangWanYi
     * @create: 2021-11-24 22:25
     **/
    public class ClientTcp {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            Socket clientSocket = null;
            InputStream is = null;
            OutputStream os = null;
            try {
                clientSocket = new Socket("localhost", 9999);
                System.out.println("客户端启动成功……");
                is = clientSocket.getInputStream();
                os = clientSocket.getOutputStream();
                byte[] bytes = new byte[1024];
                String msg;
                int len;
                while (true) {
                    len = is.read(bytes);
                    System.out.println("服务端发来消息:" + new String(bytes, 0, len));
                    System.out.println("请输入:");
                    msg = scanner.nextLine();
                    os.write(msg.getBytes(StandardCharsets.UTF_8));
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    os.close();
                    is.close();
                    clientSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    经典排序之 计数排序
    经典算法 总结
    经典排序之 二路归并排序
    经典排序之 堆排序
    经典排序之 插入排序
    经典排序之 冒泡排序
    经典排序之 选择排序
    经典排序之 快速排序
    两个队列实现一个栈
    Java Web系列:JDBC 基础
  • 原文地址:https://www.cnblogs.com/ywy8/p/15603011.html
Copyright © 2011-2022 走看看