【发布时间】:2015-11-18 21:19:25
【问题描述】:
我正在尝试连接到另一个开发人员创建的服务器。他不再可用,所以我试图解释他的意思。
我正在创建要发送到服务器的 UDP 消息,并且在消息的必填字段之一的描述中,他有这个:
客户端的名称,使用 8 位 ASCII 字符编码
例如,如果我想使用名称“MyName”,结果将是 (char, dec, hex):
| M | 77 | 0x4D |
| y | 121 | 0x79 |
| N | 78 | 0x4E |
| a | 97 | 0x61 |
| m | 109 | 0x6D |
| e | 101 | 0x65 |
我只是对这个领域应该有什么感到有点困惑。应该是
0771217897109101
应该是这样
0x4D0x790x4E0x610x6D0x65
或者应该是完全不同的东西?
作为一个仅供参考,他使用 C++ 编写服务器,而我使用 Java。我知道这没有什么区别,我只是想我会添加一些信息。
【问题讨论】:
-
与
byte[] b = { 0x4D, 0x79, 0x4E...};或byte[]b = { 077, 0121, 078...}。陷阱:Java 字符是 16 位 Unicode 编码的,而 C++ 字符通常是 8 位。 -
协议说明在哪里?描述本身没有意义;如果客户的名字是“äïëöü”,其中没有一个字符可以用 ASCII 编码怎么办?
-
我投票决定将此问题作为离题结束,因为这涉及我们无权访问的第 3 方代码,因此无法评论
-
@Brian 忽略 SO 的精英。你的问题很好,需要不止一个压迫者来结束你的问题。请记住,来自 Sun Java 开发人员论坛的推动人们需要去某个地方以他们卓越的智慧推动人们。
-
@ControlAltDel 为什么?他的问题很明确,他有一个协议规范,想知道如何在 Java 中管理它。为什么需要服务器代码?