How to write arrays to OutputStream in Java
•
Java
I want to send multiple random values through socket I think arrays are the best way to send them But I don't know how to write an array to socket OutputStream?
My java class
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(); } }
Solution
Using Java io. Dataoutputstream / datainputstream pairs, they know how to read integers Send the information as a packet with random length
Sender
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)) ...
receiver
DataInputStream in = new DataInputStream(sock.getInputStream()); int len = in.readInt(); for(int i = 0; i < len; i++) { int next = in.readInt(); ...
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码