千家信息网

java如何实现UDP双人交互

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章主要为大家展示了"java如何实现UDP双人交互",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"java如何实现UDP双人交互"这篇文章吧。发送端p
千家信息网最后更新 2025年02月05日java如何实现UDP双人交互

这篇文章主要为大家展示了"java如何实现UDP双人交互",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"java如何实现UDP双人交互"这篇文章吧。

发送端

public class my implements Runnable {private DatagramSocket client ;private BufferedReader reader;private String toip; //对方的ipprivate int toport; //对方的端口public my(int port,String toip,int toport){    try {        client=new DatagramSocket(port);        reader=new BufferedReader(new InputStreamReader(System.in));        this.toip=toip;        this.toport=toport;    } catch (SocketException e) {        e.printStackTrace();    }}public void run(){    while(true)    {        String s;        try {            s = reader.readLine();            byte[] datas=s.getBytes();            DatagramPacket packet=new DatagramPacket(datas,0,datas.length,new InetSocketAddress(this.toip,this.toport));            client.send(packet);            if(s.equals("bye"))            {                break;            }        } catch (IOException e) {            e.printStackTrace();        }    }    client.close();}}

接收端:使用面向对象封装

public class you implements Runnable{private DatagramSocket server;private int port;private String from;public you(int port,String from){    this.port=port;    this.from=from;    try {        server=new DatagramSocket(port);    } catch (SocketException e) {        e.printStackTrace();    }}public void run(){    while(true)    {        byte[] container=new byte[1024*60];        DatagramPacket packet=new DatagramPacket(container,0,container.length);        try {            server.receive(packet);            byte[] datas=packet.getData();            int len=packet.getLength();            String data=new String(datas,0,datas.length);            System.out.println(from+":"+data);            if(data.equals("bye"))            {                break;            }        } catch (IOException e) {            e.printStackTrace();        }    }    server.close();}}

加入多线程实现双向交流

public class student {public static void main(String[]args){    new Thread(new my(9999,"localhost",8888)).start();//发送    new Thread(new you(7777,"teacher")).start(); //接收}}public class teacher {public static void main(String[]args){    new Thread(new you(8888,"student")).start();//接收    new Thread(new my(5555,"localhost",7777) ).start();//发送}}

以上是"java如何实现UDP双人交互"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0