所以我试图通过一个开放的套接字连接发送一个String[]
。我目前有这段代码:
发送:
public void sendData() {
try {
OutputStream socketStream = socket.getOutputStream();
ObjectOutputStream objectOutput = new ObjectOutputStream(socketStream);
objectOutput.writeObject(new String[] {"Test", "Test2", "Test3"});
objectOutput.close();
socketStream.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
接收:
public Object readData() {
try {
InputStream socketStream = socket.getInputStream();
ObjectInputStream objectInput = new ObjectInputStream(new GZIPInputStream(socketStream));
Object a = objectInput.readObject();
return a;
} catch(Exception e) {
return null;
}
}
在我收到另一端的 String[]
后,我希望能够像往常一样遍历它,以便我可以获得值。我当前的代码似乎无法正常工作,因为它返回 null
作为值。
这可能吗?
最佳答案
My current code doesn't seem to works as it returns null as the value.
原因也很明显!
} catch(Exception e) {
return null;
}
意思是“如果出现问题,返回 null
并且不要告诉我问题出在哪里”!
像这样捕获和压缩异常是错误的做法。至少,您应该尝试打印异常堆栈跟踪。在编写器代码中,您可以这样做:
System.out.println(e.toString());
总比没有好,但它只打印异常名称和消息。你真的应该打印完整的堆栈跟踪......像这样:
e.printStackTrace(System.out);
对于生产质量代码,您可能应该记录异常,而不仅仅是将消息写入标准输出。
一旦有了堆栈跟踪,您就可以找出真正的问题所在并加以解决。
关于java - 通过 Socket 连接发送一个 String[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867880/