java - 创建 Java TCP 协议(protocol)

标签 java sockets tcp

所以我正在尝试一些网络和套接字编程,我创建了简单的客户端和服务器java应用程序,它将连接并允许用户输入消息并相互交谈。

接下来,我尝试为我想要制作的游戏创建一个协议(protocol),该游戏涉及 12 个打开或关闭的灯,服务器将使用协议(protocol)发送客户端值,并根据这些值确定灯将会亮起。

示例 - 000000000100 将打开灯三

该协议(protocol)将以与客户端相同的方式工作,即按下按钮并将字符串发送回服务器,将检查两个字符串是否匹配,如果匹配,用户将获得积分。

我遇到的麻烦是从哪里开始?我对创建协议(protocol)没有主要知识,并且希望找到正确的方向。

如果我在客户端和服务器之间发送二进制字符串,这会被视为协议(protocol)还是还有更多协议(protocol)?

最佳答案

确实,协议(protocol)就是您想要的任何协议(protocol)。

如果您向服务器发送 000000000100,并且该服务器能够理解并做出适当响应,那么您就拥有了可靠的应用程序级协议(protocol)。在您的游戏上下文中,这可能是您的协议(protocol)所需要的全部内容,或者您​​可能需要处理错误情况(可能 000000000100 是无效值),这取决于您。

但是,您无需担心诸如“服务器是否收到我的消息?”之类的问题。因为 TCP 可以处理这个问题。对于这样的事情,您可能不想了解 TCP 的深度和复杂性。

关于java - 创建 Java TCP 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973726/

相关文章:

java - 我如何检查 Java 中的 Vector3 (x,y,z) 是否位于另外 2 个 Vector3 之间?

java - 转换为时间戳时无法解析日期

java - Jersey能否根据请求的URI通过特定的构造函数构建资源类?

java - java中从一个套接字线程向所有现有套接字线程广播数据

java - 使用套接字和线程时出现 EOFException/SocketException

javascript - Node `net` 模块 IPC 服务器间歇性

ruby - Ruby 套接字编程中的标准套接字超时(秒)是多少?

java - java连接MySQL数据库

c# - 知道网络流何时关闭

tcp - lwip 初始化网络接口(interface)