발신자에서 수신자로 간단한 UDP file.txt 전송을하고 있습니다. 그것은 프롬프트로 도착했습니다 ..하지만, 내가 내용을 인쇄 할 때 일부는 올바르게 나왔지만 일부는 수신자 측에서받은 이전 단어로 매시업되었습니다.UDP가 데이터 패킷을 수신했지만 재미있는 결과를 출력합니다.
내가 무엇을 의미 : 텍스트 파일의 내용이 ALL IN ONE 문장과 같은 : 1 일 이후
일, 주 주 제네바 내 복귀에 돌아가신 후, 수신기 측
예 :
일 weekr가 가 가
,536 제네바 toturn myayed 창 을 onayed awayed 통과 후 weekr 일, R 후 이것에 대한코드는 다음과 같습니다
byte[] byteArray = new byte[9999];
DatagramSocket listenSocket = new DatagramSocket(5001, InetAddress.getByName("127.0.0.1"));
while(true) {
DatagramPacket segment = new DatagramPacket(byteArray, byteArray.length);
listenSocket.receive(segment);
ByteArrayInputStream byteIn = new ByteArrayInputStream(segment.getData());
int data = byteIn.read();
if(data == -1) {
//break;
} else {
System.out.println("Got: " + new String(segment.getData()));
}
예, TCP는 더 나은 옵션했을하지만 문제는이 경우에 발생하는 이유에 도움이 필요합니다. 여러분 모두가이 문제에 대한 통찰력을 줄 수 있기를 바랍니다.
UDP는 올바른 순서와 중복 된 보호를 보장하지 않습니다. 이 기능이 필요한 경우 TCP를 사용하거나 UDP를 기반으로 모든 서비스를 직접 구현해야합니다. – dirkk