Rphil
Rphil

Reputation: 1

Java app cannot communicate with RN-171 wifi module

I'm writing a Java code which have to send some data to an elecronic system and to receive some data from it through wireless. The electronic system is made of PIC32 and RN-171 module. I'm now trying to connect to the RN-171 network and to send and receive some data. Although I can in my java code set up an OutputStream and send some data to the RN-171 properly, I can't set up an InputStream and my app launches the following exception:

 java.io.StreamCorruptedException: invalid stream header: 2A48454C
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804) 
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299) 
 at TestController.sendParametersToWirelessModule(TestController.java:44) 
 at TestController.main(TestController.java:30)

The code in my java app, which generates the exception is:

try{
 //1. creating a socket to connect to the server
 requestSocket = new Socket("1.2.3.4", 2000);
 System.out.println("Connected to localhost in port 2004");
 //2. get Input and Output streams
 out = new ObjectOutputStream(requestSocket.getOutputStream());
 out.flush();
 --> in = new ObjectInputStream(requestSocket.getInputStream());
 //3: Communicating with the server
 sendMessage(message);          }

(The arrow indicates the code line which generates exception)

Is there a solution?

Upvotes: 0

Views: 345

Answers (1)

Petter
Petter

Reputation: 4165

Use the following code instead:

out = requestSocket.getOutputStream();
in = requestSocket.getInputStream();

ObjectOutputStream/ObjectInputStream are used to serialize/deserialize Java objects. There is also no point in flushing the output stream before writing to it.

Upvotes: 0

Related Questions