Java网络编程UDP协议发送接收数据

网友投稿 257 2022-10-04


Java网络编程UDP协议发送接收数据

本文实例为大家分享了java网络编程UDP协议发送接收数据的具体代码,供大家参考,具体内容如下

UDP协议发送数据步骤

A:创建发送端socket对象;

B:创建数据,并把数据打包;

C:调用socket对象的发送方法发送数据包;

D:释放资源

package net;

import java.io.IOException;

import java.net.DatagramPacket;

import javpqQEjAGYVga.net.DatagramSocket;

import java.net.InetAddress;

public class SendDemo {

public static void main(String[] args) throws IOException {

//A

DatagramSocket ds = new DatagramSocket();

//B

byte[] 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);

//C

ds.send(dp);

//D

ds.close();

}

}

UDP协议接收数据步骤

A:创建接收端socket对象;

B:创建一个数据包(接收容器);

C:调用socket对象的接收方法接收数据;

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 {

//A

DatagramSocket ds = new DatagramSocket(10010);

//B

byte[] by = new byte[1024];

int length = by.length;

DatagramPacket dp = new DatagramPacket(by, length);

//C

ds.receive(dp);

//D

//获取对方ip

InetAddress 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();

}

}

先运行接收端代码,再运行发送端代码。

多次从键盘接收发送数据版本

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 statihttp://c void main(String[] args) throws IOException {

//A

DatagramSocket 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;

}

//B

byte[] 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);

//C

ds.send(dp);

}

//D

ds.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 {

//A

DatagramSocket ds = new DatagramSocket(10010);

//多次接受版本

while(true){

//B

byte[] by = new byte[1024];

int length = by.length;

DatagramPacket dp = new DatagramPacket(by, length);

//C

ds.receive(dp);

//D

//获取对方ip

InetAddress 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();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#yyds干货盘点#软件逆向工具介绍-反编译工具
下一篇:#yyds干货盘点#加密狗厂商有哪些?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~