欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java实现UDP互发消息

程序员文章站 2022-04-16 22:15:54
本文实例为大家分享了java实现udp互发消息的具体代码,供大家参考,具体内容如下udp的发送端package udp;/**udp发送端*/import java.io.ioexception;im...

本文实例为大家分享了java实现udp互发消息的具体代码,供大家参考,具体内容如下

udp的发送端

package udp;
/**
udp发送端
*/
import java.io.ioexception;
import java.net.datagrampacket;
import java.net.datagramsocket;
import java.net.inetsocketaddress;

public class udpclient {
 public static void main(string[] args) throws ioexception {
  system.out.println("发送方启动中......");
  //使用datagramsocket指定端口,创建发送端
  datagramsocket client = new datagramsocket(8888);
  //准备数据,转换为字节数组
  string data ="帅哥";
  byte[] datas = data.getbytes();
  //封装成datagrampacket包裹,需要指定目的地
  datagrampacket packet = new datagrampacket(datas,0,datas.length,new inetsocketaddress("localhost",9999));
  //发送包裹send(datagrampacket p)
  client.send(packet);
  //释放资源
  client.close();
 }
}

udp的接收端

package udp;
/**
udp接收端
*/
import java.io.ioexception;
import java.net.datagrampacket;
import java.net.datagramsocket;

public class udpserver {
 public static void main(string[] args) throws ioexception {
  system.out.println("接收方启动中......");
  //使用datagramsocket指定端口创建接收端,端口值要与客户端的发送包裹一致
  datagramsocket server =new datagramsocket(9999);
  //准备容器封装成datagrampacket包裹
  byte[] container = new byte[1024*60];
  datagrampacket packet = new datagrampacket(container,0,container.length);
  //阻塞式
  server.receive(packet);
  byte[] datas = packet.getdata();
  int len=packet.getlength();
  system.out.println(new string(datas,0,len));
  server.close();
 }
}

注意:在intellij idea中运行时,要先把两个端的平行运行设置打开,不然每次只能打开发送端或者接收端,不能同时打开,具体操作如下:

Java实现UDP互发消息

Java实现UDP互发消息

最后,运行结果如下:

Java实现UDP互发消息

Java实现UDP互发消息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。