如何在Java中将数组写入outputStream
发布时间:2020-12-15 02:49:44 所属栏目:Java 来源:网络整理
导读:我想通过Socket发送多个随机值.我认为数组是发送它们的最佳方式.但是我不知道如何将数组写入Socket outputStream? 我的java类 import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.Socket;import
我想通过Socket发送多个随机值.我认为数组是发送它们的最佳方式.但是我不知道如何将数组写入Socket outputStream?
我的java类 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.Socket; import java.io.*; import java.util.Random; class NodeCommunicator { public static void main(String[] args) { try { Socket nodejs = new Socket("localhost",8181); Random randomGenerator = new Random(); for (int idx = 1; idx <= 1000; ++idx){ Thread.sleep(500); int randomInt = randomGenerator.nextInt(35); sendMessage(nodejs,randomInt + " "); System.out.println(randomInt); } while(true){ Thread.sleep(1000); } } catch (Exception e) { System.out.println("Connection terminated..Closing Java Client"); System.out.println("Error :- "+e); } } public static void sendMessage(Socket s,String message) throws IOException { s.getOutputStream().write(message.getBytes("UTF-8")); s.getOutputStream().flush(); } } 解决方法
使用java.io.DataOutputStream / DataInputStream对,他们知道如何读取整数.将信息作为长度随机数的数据包发送.
寄件人 Socket sock = new Socket("localhost",8181); DataOutputStream out = new DataOutputStream(sock.getOutputStream()); out.writeInt(len); for(int i = 0; i < len; i++) { out.writeInt(randomGenerator.nextInt(35)) ... 接收器 DataInputStream in = new DataInputStream(sock.getInputStream()); int len = in.readInt(); for(int i = 0; i < len; i++) { int next = in.readInt(); ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |