我有一个Java服务器,它将具有两种不同类型的客户端,一个基于Java的控制台和一个基于Lua的客户端,服务器将控制该客户端。我已经得到了Lua的客户攀谈来回通过TCP套接字与ObjectInputStream,Java和Lua客户端进行网络连接
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
现在我想获得一个基于Java的客户端连接,我想用
out = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
in = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
我遇到的问题理解接受连接的最佳方式,不知道它是否是另一端的Lua或Java客户端。然后设置合适的流。
我应该只在初始连接上使用不同的端口吗?我希望更多的是从BufferedReader可以读取的ObjectOutputStream发送一个字符串。或者,如果它是PrintWriter或ObjectOutputStream,则应在设置之前使用较低级别的内容查看连接的内容。
指向深入教程或实际代码的链接将起作用。我无法找到超出其中一个或另一个的基本设置的资源。
谢谢先进。
如果您不是专门使用Java客户端,则不应该使用ObjectOutputStream。使用XML或JSON等标准传输格式,或设计精确的二进制记录格式。 – RealSkeptic
你会在XML或JSON之间推荐什么?我对这两个人的经历都差不多,这很少。 – Ditchbuster
JSON更简单,我会说,并且是专门为表示对象而设计的。如果你没有选择XML的特定理由,那么我更喜欢JSON。但是,可能你甚至不需要这个。这取决于你需要交换的消息的性质。 –