그것은이다 :하지만 당신은 정말로 유일한 길이를 작성해야하는 경우 같은 것을 할.
Java DataInputStream은 데이터가 big-endian (네트워크 바이트 순서) 일 것으로 예상합니다. Mono 문서 (BinaryWriter과 같은 항목)에서 볼 때 C#은 리틀 엔디안 (Win32/x86에서는 기본값)으로 사용됩니다.
는 32 비트 INT '1'바이트를 변경하려면 표준 클래스 라이브러리를 사용할 때
그래서, 그들은 다른 결과 생산 :
: 당신은 C#에서의 int를 작성하는 방법을 변경할 수 있습니다
//byte hex values
Java: 00 00 00 01
C#: 01 00 00 00
을
private static void WriteInt(Stream stream, int n) {
for(int i=3; i>=0; i--)
{
int shift = i * 8; //bits to shift
byte b = (byte) (n >> shift);
stream.WriteByte(b);
}
}
편집 :
이 일의 안전한 방법은 다음과 같습니다
private static void WriteToNetwork(System.IO.BinaryWriter stream, int n) {
n = System.Net.IPAddress.HostToNetworkOrder(n);
stream.Write(n);
}