我正在编写一个Java代码,它必须将一些数据发送到电子系统并通过无线方式从中接收一些数据。电子系统由PIC32和RN-171模块组成。我现在正试图连接到RN-171网络并发送和接收一些数据。虽然我可以在我的java代码中设置一个OutputStream并正确地将一些数据发送到RN-171,但是我无法设置一个InputStream而我的应用程序会启动以下异常:
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)
我的java应用程序中生成异常的代码是:
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); }
(箭头表示生成异常的代码行)
有解决方案吗?有人可以帮我吗?
由于
答案 0 :(得分:0)
请改用以下代码:
out = requestSocket.getOutputStream();
in = requestSocket.getInputStream();
ObjectOutputStream / ObjectInputStream用于序列化/反序列化Java对象。在写入之前刷新输出流也没有意义。