我想构建一个接受完全独立于平台的 TCP 流的 Java 服务器,以便客户端可以用任何其他语言编写,如 C++、PHP、ActionScript 或其他任何语言。
但是,当我想向流中写入不同的原语(如 int、short 等)时,我必须注意正确的整数长度以及整数是有符号还是无符号。这是一个问题,因为整数字节长度在不同平台之间变化很大,例如 PHP 整数在 32 位和 64 位机器上具有不同的大小。
出于这个原因,只发送文本而不发送整数值可能是合理的,因为如果文本使用相同的字符集和字节顺序,每台机器都会以相同的方式解释文本。因此,如果服务器应该读取与平台无关的数据,它只能使用 DataInputStream.readUTF()。
我不确定我的论点是否正确,但如果我错了,请纠正我。