如何在java中通过UDP发送int
发布时间:2020-12-14 06:05:22 所属栏目:Java 来源:网络整理
导读:我正在尝试编写一些通过UDP发送单个int的代码.我到目前为止的代码: 发件人: int num = 2;DatagramSocket socket = new DatagramSocket();ByteArrayOutputStream bout = new ByteArrayOutputStream();PrintStream pout = new PrintStream( bout );pout.prin
我正在尝试编写一些通过UDP发送单个int的代码.我到目前为止的代码:
发件人: int num = 2; DatagramSocket socket = new DatagramSocket(); ByteArrayOutputStream bout = new ByteArrayOutputStream(); PrintStream pout = new PrintStream( bout ); pout.print(num); byte[] barray = bout.toByteArray(); DatagramPacket packet = new DatagramPacket( barray,barray.length ); InetAddress remote_addr = InetAddress.getByName("localhost"); packet.setAddress( remote_addr ); packet.setPort(1989); socket.send( packet ); 接收器: DatagramSocket socket = new DatagramSocket(1989); DatagramPacket packet = new DatagramPacket(new byte[256],256); socket.receive(packet); ByteArrayInputStream bin = new ByteArrayInputStream(packet.getData()); for (int i=0; i< packet.getLength(); i++) { int data = bin.read(); if(data == -1) break; else System.out.print((int) data); 问题是接收器正在向屏幕打印“50”,这显然是不对的.我认为问题可能是我以某种方式将其作为字符串或其他东西发送而且它没有正确读取它.有帮助吗? 解决方法
使用数据流,如:
import java.io.*; public class Main { public static void main(String[] args) throws Exception { final ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); final DataOutputStream dataOut = new DataOutputStream(byteOut); dataOut.writeInt(1); dataOut.writeDouble(1.2); dataOut.writeLong(4l); dataOut.close(); // or dataOut.flush() final byte[] bytes = byteOut.toByteArray(); final ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes); final DataInputStream dataIn = new DataInputStream(byteIn); final int integ = dataIn.readInt(); final double doub = dataIn.readDouble(); final long lon = dataIn.readLong(); System.out.println(integ); System.out.println(doub); System.out.println(lon); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- spring-boot 禁用swagger的方法
- java – String.intern()如何工作以及它如何影响String池?
- Hashmap为什么容量是2的幂次,什么是负载因子
- java安全停止线程
- Java套接字swingWorker正在运行但没有收到或传输消息
- Java获取https网页内容报错SSLHandshakeException信任(忽略
- 实体entity、JavaBean、Model、POJO、domain的区别
- 在Java Web项目中添加定时任务的方法
- Java泛型 – 类或类<?扩展SomeClass>
- java – 在Eclipse中使用Interactive Console(Debug视图)