繁体   English   中英

如何通过Socket发送String数组对象?

[英]How to send String array Object over Socket?

我有String数组对象。 让我们说

String[] names = new String[7];

而且我也通过在客户端系统上使用ObjectOutputStream将它存储到文件中来使这个对象持久化。 我正在使用ObjectInputStream读取存储的对象。 好的,好的。 现在我想通过套接字将此对象发送到另一个系统。

怎么做? 请帮忙。 谢谢。

您应该创建Socket的实例
获取输出流并写入它(例如使用ObjectOutputStream )。

Socket echoSocket = new Socket(hostName, portNumber);
ObjectOutputStream out = new ObjectOutputStream(echoSocket.getOutputStream());
out.writeObject(names);  

您可以在Oracle docs中找到一个示例: example
这个答案应该对你有所帮助

String Array对象实现Serializable接口,因此它可以作为字节流通过网络发送:

Socket socket = new Socket(host, port);
ObjectOutputStream outputStream = new ObjectOutputStream(
                socket.getOutputStream());
String[] names = new String[1]; // Empty at the moment
outputStream.writeObject(names); 

回答你的问题:在Java Array和String中是可序列化的类型,因此字符串数组可以转换为字符串(!),通过网络发送而不是反序列化(转换回对象)。 请参阅: 如何在java中序列化对象 ,但我建议将数据转换为xml,json或任何其他传输数据格式,而不是将其作为字符串发送。 这样可以省去很多麻烦。

为了更进一步 - 而不是发送非常低级别的数据(套接字,流等),我建议创建更高级别的服务并通过http调用它。 restletSpring远程处理这样的框架很容易设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM