我有一个Java服务器,它将有两种不同类型的客户机,一种是基于Java的控制台,另一种是基于Lua的客户机,服务器将对它们进行控制。我要和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客户端。然后建立合适的溪流。
我应该在初始连接上使用不同的端口吗?我希望能有更多类似于从ObjectOutputStream发送BufferedReader可以读取的字符串的内容。或者,如果是PrintWriter或ObjectOutputStream,是否应该在设置之前使用更低的级别来查看连接内容。
指向深度教程或实际代码的链接将有效。我有困难找到资源以外的基本设置的一个或另一个。
谢谢你的进阶。
发布于 2015-09-14 21:15:13
既然您建议提供两种完全不同的服务,那么在不同的端口提供它们是自然的,也是合适的。为了实现这一点,您的服务器将创建和管理两个独立的ServerSocket,监听不同的端口。一个提供一个服务,另一个提供另一个服务。您可以使用线程、Selector或这些线程的组合来处理两个服务器套接字和所有客户机。
作为另一件事,我敦促您在依赖对象流之前仔细考虑。如果您可以在更简单和/或更通用的协议之上实现您的服务,那么您将避免Java序列化的多重乐趣,您还将为用其他语言编写的客户端打开大门。
https://stackoverflow.com/questions/32573917
复制相似问题