처음으로 볼 수있는 문제가 있습니다. 응용 프로그램에서 데이터를 보내고 받기 위해 Java DatagramSocket (s)을 사용하고 있습니다.DatagramPacket에 의해 수신 된 추가 바이트
이 내가 데이터를 전송하는 방법이다 : 나는 BYT [] 버퍼를 보낼 때 지금
byte[] buffer = "my data".getBytes();
senderPacket = new DatagramPacket(buffer, 0, buffer.length, remoteAddress, remotePort);
socket.send(senderPacket);
를, 그것은 크기가 275 했다입니다하지만 수신 응용 프로그램에서 패킷을 수신 바이트 [을 받았을 때 ]와 같이 receiverPacket에서 다음과 같이 입력합니다.
buffer = new byte[2048];
receiverPacket = new DatagramPacket(buffer, buffer.length);
socket.receive(receiverPacket);
수신 된 바이트 수가 278 바이트인데 3 바이트가 더 많은 것으로 나타났습니다.
이것은 큰 문제가 아닌 것처럼 보일지 모르지만, 실제로 이것이 나에게 도움이 될 것입니다. 왜 이런 일이 일어나고 있는지, 어떻게 해결할 지, 논리적 인 설명이 도움이 될 것입니다.
감사합니다.
tcpdump와 같은 도구를 실행하여 전선을 가로 지르는 현상을 정확히 볼 수 있습니까? 이러한 여분의 바이트가 송신 측 또는 수신 측에서 나타나는지 여부를 아는 것이 유용합니다. –
패킷의 길이를 결정하는 코드가 여기에 표시되지 않습니다. – EJP