gpt4 book ai didi

java - 跨 TCP 套接字与 ObjectInputStream、Java 和 Lua 客户端联网

转载 作者:可可西里 更新时间:2023-11-01 02:51:31 24 4
gpt4 key购买 nike

我有一个 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,我应该使用较低级别的东西在设置之前查看正在连接的是什么。

深入教程或实际代码的链接会起作用。我无法找到一个或另一个的基本设置之外的资源。

提前致谢。

最佳答案

鉴于您打算提供两种完全不同的服务,因此在不同的端口提供它们是自然而恰当的。为实现这一点,您的服务器将创建和管理两个单独的 ServerSocket,监听不同的端口。一个会提供一种服务;另一个会提供另一个。您可以使用线程或 Selector 或它们的组合来处理两个服务器套接字和所有客户端。

另外,我敦促您在依赖对象流之前仔细考虑。如果您可以在更简单和/或更通用的协议(protocol)之上实现您的服务,那么您将避免 Java 序列化的多重乐趣,并且您还将为使用其他语言编写的客户端敞开大门。

关于java - 跨 TCP 套接字与 ObjectInputStream、Java 和 Lua 客户端联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com