同一网络 两台电脑相互连接

2020-11-08 / 0 评论 / 16 阅读 / 正在检测是否收录...

客户端

public static void main(String[] args) {
        // 客户端,直接使用Socket类型 127.0.0.1代表自己电脑的IP
        Socket s = null;
        try {
            s = new Socket("172.30.4.99", 123);// IP地址,端口号
            OutputStream os = s.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            Scanner scanner = new Scanner(System.in); // 键盘输入一直发消息
            String str;
            BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            while ((str = scanner.nextLine()) != null && !"".equals(str)) {
                pw.println(str);
                pw.flush();
                if (str.equals("bye")) {
                    break;
                }
                String temp = br.readLine();
                System.out.println(temp);
                if (temp.equals("bye")) {
                    break;
                }
            }
        }catch (IOException e) {
            System.out.println("服务器异常断开");
        } finally {
            try {
                s.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

服务器

public static void main(String[] args) {
        //TCP链接 服务端使用serverSocket
        //网络的四元组需要本地IP,本地端口,对外IP,对外端口
        try {
            //服务器专用的一个类型,ServerSocket,参数需要绑定本机端口号
            ServerSocket ss = new ServerSocket(23456);
            System.out.println("服务器已启动");
            //接收别人给的数据  管道
            Socket s = ss.accept();
            //查看别人连自己的ip
            s.getRemoteSocketAddress();
            System.out.println("链接已建立");
            
            //获取对面的流
            InputStream is = s.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            PrintWriter pw = new PrintWriter(s.getOutputStream());
            String str;
            
            Scanner scanner = new Scanner(System.in);
            
            while((str = br.readLine()) != null && !"".equals(br)) {
                System.out.println(str);
                if(str.equals("bye")) {
                    break;
                }
                String temp = scanner.nextLine();
                pw.println(temp);
                pw.flush();
                if(temp.equals("bye")) {
                    break;
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
本文共 126 个字数,平均阅读时长 ≈ 1分钟
0

打赏

海报

正在生成.....

评论 (0)

取消