完全にプラットフォームに依存しない TCP ストリームを受け入れる Java サーバーを構築して、クライアントを C++、PHP、ActionScript などの他の言語で記述できるようにしたいと考えています。
ただし、int、short などのさまざまなプリミティブをストリームに書き込みたい場合は、正しい整数の長さと、整数が符号付きか符号なしかを考慮する必要があります。これは問題です。整数のバイト長はプラットフォームによって大きく異なるためです。たとえば、PHP の整数は 32 ビット マシンと 64 ビット マシンではサイズが異なります。
このため、整数値ではなくテキストのみを送信することが合理的である可能性があります。これは、テキストが同じ文字セットとバイト順を使用している場合、すべてのマシンが同じ方法でテキストを解釈するためです。したがって、サーバーは、プラットフォームに依存しないデータを読み取る必要がある場合にのみ DataInputStream.readUTF() を使用できます。
私の主張が正しいかどうかはわかりませんが、間違っている場合は訂正してください。