返回

udp通讯

发布时间:2022-10-17 23:10:28 294
# java# java# 数据
​​​​package com.cn.udp;​​​​​​​​import java.io.IOException;​​​​import java.net.DatagramPacket;​​​​import java.net.DatagramSocket;​​​​import java.net.SocketException;​​​​/**​​​​* Author:Liu Zhiyong(QQ:1012421396)​​​​* Version:Version_1​​​​* Date:2016年8月5日19:15:51​​​​* Desc:​​​​接收端的使用步骤:​​​​ 1.建立udp服务,并且要监听一个接口​​​​ 2.准备空的数据包接收数据​​​​ 3.调用upd的服务,接收数据​​​​ 4.关闭资源​​​​*/​​​​/**​​​​ * 接收端​​​​ * @author zhiyong​​​​ *​​​​ */​​​​public class Demo1_Receive {​​​​  public static void main(String[] args) throws IOException {​​​​   //建立udp的服务,并且要监听一个接口。​​​​   DatagramSocket socket = new DatagramSocket(9090);​​​​   //准备空的数据包用于存储数据​​​​   byte[] buf = new byte[1024];​​​​    DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length);​​​​    //调用upd的服务接收数据​​​​    socket.receive(datagramPacket);//数据实际上存储到了byte的数组中了。没有接收到数据包之前会一直等待。​​​​    ​​​​    System.out.println("接收端接收到的数据:" + new String(buf, 0, datagramPacket.getLength(), "utf-8"));//√  .getLength()获取数据包存储了几个字节​​​​//    System.out.println("接收端接收到的数据:" + new String(buf, 0, datagramPacket.getData().length, "utf-8"));//√  .getLength()获取数据包存储了几个字节​​​​   ​​​​    //关闭资源​​​​    socket.close();​​​​ }​​​​ ​​​​}​​

 

 

发送端  

 

​​package com.cn.udp;​​​​​​​​import java.io.IOException;​​​​import java.net.DatagramPacket;​​​​import java.net.DatagramSocket;​​​​import java.net.InetAddress;​​​​​​​​/**​​​​* Author:Liu Zhiyong(QQ:1012421396)​​​​* Version:Version_1​​​​* Date:2016年8月5日18:20:25​​​​* Desc:​​​​在java中网络通讯也称作为Socket(套接字、插座)通讯,要求通讯的两台机器必须要安装Socket。​​​​​​​​不同的协议就有不同的插座(Socket)​​​​​​​​udp通讯协议的特点:​​​​ 1.将数据极其源和目的封装为数据包,不需要建立连接(面向无连接)。​​​​ 2.每个数据包大小限制在64K中。​​​​ 3.因为无连接,所以不可靠。​​​​  4.因为不需要建立连接,所以速度快。​​​​  5.udp通讯是不分服务端与客户端的,只分发送端与接收端。​​​​ 比如:物管的对讲机,人说话,飞Q聊天,游戏。。。。。​​​​  ​​​​udp协议下的Socket:​​​​  DatagramSocket(udp插座服务)​​​​ DatagramPacket(数据包类)​​​​    buf:发送的数据内容​​​​   length:发送数据内容的大小​​​​    address:发送的目的IP地址对象​​​​   port:端口号​​​​​​​​发送端的使用步骤:​​​​ 1.建立udp服务​​​​ 2.准备数据,把数据封装到数据包中发送。发送端的数据包要带上iP地址与端口号​​​​  3.调用udp的服务,发送数据​​​​ 4.关闭资源​​​​*/​​​​/**​​​​ * 发送端​​​​ * @author zhiyong​​​​ *​​​​ */​​​​public class Demo1_Sender {​​​​ public static void main(String[] args) throws IOException{​​​​    //建立udp服务​​​​   DatagramSocket socket = new DatagramSocket();​​​​   //准备数据,把数据封装到数据包中​​​​   String data = "这是我第一个udp的例子----.............";​​​​    DatagramPacket datagramPacket = new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090);​​​​    //调用udp的服务发送数据包​​​​   socket.send(datagramPacket);​​​​    //关闭资源 。实际上就是释放占用的端口号​​​​   socket.close();​​​​ }​​​​}​​
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
js手写的弹出框 2022-10-17 22:31:01