我还是Java新手,并且练习了我在客户端和服务器之间建立TCP连接。
在客户端,我有一个Shape对象的ArrayList,我在其中添加一个新的Triangle,Rectangle等,并将它们添加到此ArrayList中。当我打开与服务器的连接时,我在传递ArrayList时遇到问题。
你认为我应该在传递给服务器端之前将ArrayList转换为字符串吗?
由于
答案 0 :(得分:1)
TCP允许从客户端向服务器发送字节。您想要传递List<Shape>
。因此,您需要一种方法将List<Shape>
转换为字节。
有几种常见的方法可以做到这一点:
最后一个是最简单的一个,但它不允许将形状发送到除了另一个Java程序之外的任何其他程序,该程序也具有客户端在其类路径中具有的Shape类。
答案 1 :(得分:0)
关键是双方只是处理套接字级别的原始字节。这意味着:您必须*序列化您的数据。
因此:研究Java序列化和ObjectInput / OutputStreams!
要注意的一件事是:你的形状类需要可序列化!那么其他任何东西仅仅是关于使用现有的记录良好的库!
答案 2 :(得分:0)
确保您的对象为serializable。您不需要将ArrayList转换为String。