Java网络编程UDP协议发送接收数据
本文实例为大家分享了Java网络编程UDP协议发送接收数据的具体代码,供大家参考,具体内容如下
UDP协议发送数据步骤
A:创建发送端socket对象;
B:创建数据,并把数据打包;
C:调用socket对象的发送方法发送数据包;
D:释放资源
package net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class SendDemo { public static void main(String[] args) throws IOException {//ADatagramSocket ds = new DatagramSocket(); //Bbyte[] by = "Hello,UDP".getBytes(); int length = by.length; InetAddress addr = InetAddress.getByName("192.168.1.22"); int port = 10010; DatagramPacket dp = new DatagramPacket(by, length, addr, port); //Cds.send(dp); //Dds.close(); }}
UDP协议接收数据步骤
A:创建接收端socket对象;
B:创建一个数据包(接收容器);
C:调用socket对象的接收方法接收数据;
【Java网络编程UDP协议发送接收数据】D:解析数据,显示到控制台;
E:释放资源
package net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class ReceiveDemo { public static void main(String[] args) throws IOException {//ADatagramSocket ds = new DatagramSocket(10010); //Bbyte[] by = new byte[1024]; int length = by.length; DatagramPacket dp = new DatagramPacket(by, length); //Cds.receive(dp); //D//获取对方ipInetAddress addr = dp.getAddress(); String ip = addr.getHostAddress(); byte[] by2 = dp.getData(); int len = by2.length; String s = new String(by2, 0, len); System.out.println(ip+"发送的数据是:"+s); //Eds.close(); }}
先运行接收端代码,再运行发送端代码。
多次从键盘接收发送数据版本
package net; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class SendDemo { public static void main(String[] args) throws IOException {//ADatagramSocket ds = new DatagramSocket(); //数据来自键盘录入BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = null; while((line = br.readLine()) != null){//当输入jieshu时,结束if("jieshu".equals(line)){break; }//Bbyte[] by = line.getBytes(); int length = by.length; InetAddress addr = InetAddress.getByName("192.168.1.22"); int port = 10010; DatagramPacket dp = new DatagramPacket(by, length, addr, port); //Cds.send(dp); }//Dds.close(); }}
package net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class ReceiveDemo { public static void main(String[] args) throws IOException {//ADatagramSocket ds = new DatagramSocket(10010); //多次接受版本while(true){//Bbyte[] by = new byte[1024]; int length = by.length; DatagramPacket dp = new DatagramPacket(by, length); //Cds.receive(dp); //D//获取对方ipInetAddress addr = dp.getAddress(); String ip = addr.getHostAddress(); byte[] by2 = dp.getData(); int len = by2.length; String s = new String(by2, 0, len); System.out.println(ip+"发送的数据是:"+s); }//E//ds.close(); }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- Java基础-高级特性-枚举实现状态机