我正在尝试理解平台无关的套接字通信是如何工作的,因为我想在Java服务器和一些本机Unix和Windows客户端之间共享套接字数据。套接字在设计上与平台无关,但数据表示与机器相关,因此如果TCP数据抽象真实数据格式是有利的,因为在一个系统上支持的数据格式不必在另一个系统上受支持。
例如,如果我想从C ++客户端程序向Java服务器发送unsigned int值,我必须告诉服务器该数字应该被解释为负整数。这种抽象是如何工作的?由于我的知识有限,我只会发一个数字作为文本,然后附加某种独特的字符序列,告诉接收者他收到了什么样的数据,但我不知道这是否是一种可行的方法。
更具体一点:我想发送包含以下内容的消息:
TCP以字节块的形式处理数据。这是否意味着当我在一个字节中写入UTF-8编码的字符时,如果客户端计算机将Java的大端字节顺序考虑在内,则在不同的机器上以相同的方式解释此字符?感谢您的任何意见和帮助。