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

}
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM