udp通讯

相关标签: # 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(); }}
文章来源: https://blog.51cto.com/u_15769923/5630158
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报