UDP发送端

获取DatagramSocket对象,new出来

获取DatagramPacket对象,new出来,构造参数:byte[]数组,int长度,InetAddress对象,int端口

调用DatagramSocket对象的send()方法,发送出去,参数:DatagramPacket对象

调用DatagramSocket对象的close()方法,关闭资源

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 发送端
* @author taoshihan
*
*/
public class Sender {
public static void main(String[] args) throws Exception {
DatagramSocket ds=new DatagramSocket();
byte[] buf="Hello UDP".getBytes();
DatagramPacket p=new DatagramPacket(buf, buf.length, InetAddress.getLocalHost(),10000);
ds.send(p);
ds.close();
}
}

UDP接收端

获取DatagramSocket对象,new出来,构造参数:int端口号

获取DatagramPacket对象,new出来,构造参数:byte[]数组,int长度

调用DatagramSocket对象的receive()方法,接收数据,参数:DatagramPacket对象

调用DatagramPacket对象的getAddress()方法,获取到InetAdress对象

调用DatagramPacket对象的getData()方法,获取到byte[]字节数组,接收的数据

调用DatagramPacket对象的getLength()方法,获取到数据长度

通过new String()包一下,获得String数据,参数:byte[]数组,0开始,length长度

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 接收端
* @author taoshihan
*
*/
public class Receiver {
public static void main(String[] args) throws Exception {
DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];
DatagramPacket datagramPacket=new DatagramPacket(buf, buf.length);
ds.receive(datagramPacket); InetAddress ip= datagramPacket.getAddress();
int port=datagramPacket.getPort();
byte[] resByte=datagramPacket.getData();
int length=datagramPacket.getLength(); String info=new String(resByte,0,length);
System.out.println("来自:"+ip.getHostAddress()+":"+port+"说:"+info); }
}

结果:

来自:100.66.217.80:56356说:Hello UDP

先运行接收端,此时程序会阻塞住,等待接收。。。

再运行发送端

接收到一次以后就会断,用while(true) 包一下,死循环但是会阻塞住,注意不要把创建DatagramSocket包进去

最新文章

  1. Solr_全文检索引擎系统
  2. AppDelegate动态加载StoryBoard
  3. 慕课网__CSS__line height
  4. DB2导入导出数据库数据
  5. 创建QT CREATOR对话框报错 linux QT Creator :-1: error: cannot find -lGL
  6. UUID的具体用法
  7. C#函数运行超时则终止执行(任意参数类型及参数个数通用版)
  8. android 界面布局 很好的一篇总结[转]
  9. 用异提交时,后台通过校验规则文件,校验不通过时,跳转到INPUT视图时,前台显示错误信息的解决办法
  10. PHP数组与对象之间用递归转换
  11. 合约广告系统-Hadoop
  12. Less变量
  13. IDE中使用System.getProperty()获取一些属性
  14. C#中简单操作SQLserver数据库(ADO.NET的简单应用)
  15. 附005.Docker Compose文件详解
  16. 2018.11.03 NOIP模拟 图(bfs/最短路)
  17. 快速升级PHP5.4、MySql5.5版本WDCP面板一键包
  18. LAMP环境搭建实现网站动静分离[转]
  19. random内置模块
  20. python3.6编程第一课画个五角星

热门文章

  1. wpf ,只能窗口调整高度,并且设定最小值。
  2. ASP.NET中数据绑定表达式
  3. 通过IntelliJ IDEA创建maven+springmvc+mybatis项目
  4. 《Vue 编程房内考》
  5. nginx请求频率限制模块ngx_http_limit_req_module
  6. python学习笔记09-python编码与解码
  7. 【bzoj3224】【Tyvj 1728】 普通平衡树 树状数组
  8. 【GDKOI2016】 魔卡少女 线段树
  9. ContentProvider类的设计分析
  10. (转)权威支持: 选择正确的 WebSphere 诊断工具