zoukankan      html  css  js  c++  java
  • java 聊天 两个进程互相通信开两个线程

    简介

    RT

    code

    server

    
    package com.kuang;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    /**
     * Created by lee on 2021/4/1.
     */
    public class UdpServer {
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            Runnable r1 = new Runnable() { 	// 发送
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try {
                        DatagramSocket ds = new DatagramSocket(9999);
                        String s = null;
                        System.out.print("输入:");
                        while ((s = br.readLine()) != null) {
                            DatagramPacket dp = new DatagramPacket(s.getBytes(), s.getBytes().length,
                                    InetAddress.getByName("127.0.0.1"), 10000);//广播
                            ds.send(dp);
                            if(s.equals("quit")) {
                                ds.close();
                                break;
                            }
    //						System.out.print("输入:");
                        }
    
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
    
            Runnable r2=new Runnable() {	//接收
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try {
                        DatagramSocket ds=new DatagramSocket(10001);
                        byte[] buff=new byte[1024];
                        DatagramPacket dp=new DatagramPacket(buff,buff.length);
                        while(true) {
                            ds.receive(dp);
                            String s = new String(dp.getData(),0,dp.getLength());
                            String ip=dp.getAddress().getHostAddress();
                            int port=dp.getPort();
                            System.out.println("消息:"+ip+"   "+port+" : "+s);
                            if(s.equals("quit")) {
                                ds.close();
                                break;
                            }
                        }
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
    
            ExecutorService es= Executors.newFixedThreadPool(2);
            es.submit(r1);
            es.submit(r2);
    
        }//main
    }
    
    

    client

    package com.kuang;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    /**
     * Created by lee on 2021/4/1.
     */
    public class UdpClient {
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            Runnable r1 = new Runnable() { 	// 发送
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try {
                        DatagramSocket ds = new DatagramSocket(10002);
                        String s = null;
                        System.out.print("输入:");
                        while ((s = br.readLine()) != null) {
                            DatagramPacket dp = new DatagramPacket(s.getBytes(), s.getBytes().length,
                                    InetAddress.getByName("127.0.0.1"), 10001);//广播
                            ds.send(dp);
                            if(s.equals("quit")) {
                                ds.close();
                                break;
                            }
    //						System.out.print("输入:");
                        }
    
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
    
            Runnable r2=new Runnable() {	//接收
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try {
                        DatagramSocket ds=new DatagramSocket(10000);
                        byte[] buff=new byte[1024];
                        DatagramPacket dp=new DatagramPacket(buff,buff.length);
                        while(true) {
                            ds.receive(dp);
                            String s = new String(dp.getData(),0,dp.getLength());
                            String ip=dp.getAddress().getHostAddress();
                            int port=dp.getPort();
                            System.out.println("消息:"+ip+"   "+port+" : "+s);
                            if(s.equals("quit")) {
                                ds.close();
                                break;
                            }
                        }
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
    
            ExecutorService es= Executors.newFixedThreadPool(2);
            es.submit(r1);
            es.submit(r2);
    
        }//main
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    【转】Senior Data Structure · 浅谈线段树(Segment Tree)
    1260:【例9.4】拦截导弹(Noip1999)
    1255:迷宫问题
    1253:抓住那头牛
    1254:走出迷宫
    POJ 3692 幼儿园做游戏 最大团 模板题
    POJ 1466 大学谈恋爱 二分匹配变形 最大独立集
    POJ 3422 矩阵取数 最小费用流拆点+负边
    POJ 2195 一人一房 最小费用流 建图 水题
    POJ 3068 运送危险化学品 最小费用流 模板题
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/14608146.html
Copyright © 2011-2022 走看看