首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Socket发送字符串数组对象?

如何通过Socket发送字符串数组对象?
EN

Stack Overflow用户
提问于 2013-11-05 17:59:45
回答 3查看 20K关注 0票数 4

我有字符串数组对象。比方说

代码语言:javascript
复制
String[] names = new String[7];

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

该怎么做呢?请帮帮忙。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-05 18:13:29

您应该创建Socket实例

get output stream并写入(例如,使用ObjectOutputStream)。

代码语言:javascript
复制
Socket echoSocket = new Socket(hostName, portNumber);
ObjectOutputStream out = new ObjectOutputStream(echoSocket.getOutputStream());
out.writeObject(names);  

您可以在Oracle文档中找到一个示例:example

另外,this answer应该会对您有所帮助

票数 6
EN

Stack Overflow用户

发布于 2013-11-05 18:14:52

字符串数组对象实现了Serializable接口,因此它可以作为字节流通过网络发送:

代码语言:javascript
复制
Socket socket = new Socket(host, port);
ObjectOutputStream outputStream = new ObjectOutputStream(
                socket.getOutputStream());
String[] names = new String[1]; // Empty at the moment
outputStream.writeObject(names); 
票数 2
EN

Stack Overflow用户

发布于 2013-11-05 18:14:11

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

走得更远-而不是发送非常低级别的数据(套接字、流等)我建议创建更高级别的服务,并通过http调用它。像restletSpring remoting这样的框架很容易设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19786202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档