Java使用Udp进行网络通信之数据,类型传输

当我们使用udp来进行网络通信时,有时候我们会遇到数据加类型的传输,这时候我们就要考虑使用io中ByteArrayOutputStream和DataOutputStream等。好了,直接上代码吧。

/**
* 客户端

*
*/
public class Myclient1 {
public static void main(String[] args) throws IOException {
//创建客户端
DatagramSocket client=new DatagramSocket(6666);
//定义要发送的数据
double f=19.28;
//传化为字节数组
byte[] revert = revert(f);
//封装数据
DatagramPacket data=new DatagramPacket(revert, revert.length, new InetSocketAddress("localhost", 8888));
//封装数据
client.send(data);
//释放资源
client.close();
}

public static byte[] revert(double f) throws IOException{
//字节数组流 新方法不能用多态
ByteArrayOutputStream out=new ByteArrayOutputStream();
//从内存中把数据写入到程序中 所以为数据输出流
DataOutputStream dOut=new DataOutputStream(out);
byte[] b=null;
dOut.writeDouble(f);
//传化为字节数组
b=out.toByteArray();
return b;
}
}

 

/**
* 服务端
* @author luoliang
*
*/
public class MyServer1 {

public static void main(String[] args) throws IOException {
//创建DatagramSocket 对象 服务端
DatagramSocket server=new DatagramSocket(8888);
byte[] b=new byte[1024];
//封装DatagramPacket
DatagramPacket data=new DatagramPacket(b,b.length);
server.receive(data);
//封装数据转换为data2
byte[] data2 = data.getData();
//把数据写到内存中
DataInputStream in=new DataInputStream(new ByteArrayInputStream(data2));
double data1 = in.readDouble();
System.out.println(data1);
//释放资源
server.close();

}
}

 

转载于:https://www.cnblogs.com/luoliang-gaoyu/p/8145447.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值