내 과제는 (성공적으로 구현 된 java를 사용하여) UDP 서비스를 사용하여 이미지 파일을 보내는 것을 포함합니다. 교수님은 "교환 된 데이터 메시지에는 보낸 사람이 수신자 쪽에서 중복 필터링을 위해 16 비트 메시지 시퀀스 번호를 포함하도록 헤더 부분이 있어야합니다."라고 물었습니다. 내가 어떻게 할 수 있니? 아무도 나를 도울 수 있습니다. plz 자사의 긴급한UDP 클라이언트/서버 .... 중복 필터링을위한 16 비트 메시지 시퀀스 번호 포함
1
A
답변
3
당신의 UDP 패킷을 만들 것으로 가정하고, 당신은 데이터를 생성하기 위해 ByteArrayOutputStream을 사용하고 있습니다. 이 경우, 해당 ByteArrayOutputStream 맨 위에 DataOutputStream을 랩핑하고 스트림에 이미지 데이터를 쓰기 전에 writeInt (somesequenceNumber)를 호출하십시오.
수신 측에서 반대 방향으로 DataInputStream을 ByteArrayInputStream 주위에 랩하고 readInt()를 호출하여 시퀀스 번호를 가져옵니다. 여기에서 이미이 패킷을 받았는지 여부를 확인할 수 있습니다.
뭔가 쓰기 측면
같은ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(sequenceNumber++);
dos.writeInt(imageDataLength);
dos.write(imageData);
dos.flush();
byte[] udpPacketBytes = baos.toByteArray();
읽기 사이드 seenSequenceNumbers 몇 가지 설정 내가 DataOutputStream.writeShort을 사용하는 16 비트 값을
+0
저의 작은 예를 보여줄 수 있습니까? –
1
(이다
ByteArrayInputStream bais = new ByteArrayInputStream(udpPacketBytes);
DataInputStream dis = new DataInputStream(bais);
int sequenceNumber = dis.readInt();
if (seenSequenceNumbers.add(Integer.valueOf(sequenceNumber)))
{
int imageLength = dis.readInt();
byte[] imageData = new byte[imageLength];
dis.read(imageData);
}
) 및 DataInputSTream readShort()/readUnsignedShort()입니다. writeInt() 및 readInt()는 32 비트 값입니다. 중복을 피하려면 어떤 경우에도 32 비트 값이 더 나은 선택 일 수 있습니다. ;)
관련 문제
- 1. 로그 메시지 필터링을위한 RegExp
- 2. TLS 시퀀스 번호
- 3. 16 비트 비트 심도
- 4. perl 시퀀스 번호 생성기
- 5. 발생 시퀀스 번호
- 6. AXAPTA의 번호 시퀀스
- 7. UDP 메시지 처리 개선
- 8. 32 비트 16 진수의 첫 번째 16 비트
- 9. 아래쪽 16 비트 지우기
- 10. 16 진수로 비트 전환
- 11. TCP 시퀀스 번호 관련 문제
- 12. Hibernate - 자식 객체의 시퀀스 번호
- 13. Mongo DB의 ID 시퀀스 번호
- 14. 패킷을 보내기 전에 TCP 시퀀스 번호 읽기
- 15. UDP 클라이언트는 하나의 메시지 만받습니다.
- 16. 시퀀스 다이어그램의 메시지 유형 차이점
- 17. 16 진수 값의 n 문자 시퀀스 비교
- 18. 16 비트 색상에서 18 비트 색상까지 표현하는 방법은 무엇입니까?
- 19. C++ 비트 번호 목록
- 20. Grails의 중복 오류 메시지
- 21. Java에서 16 비트 배럴 시프트
- 22. 16 비트 BMP 유효성 검사
- 23. 16 비트 (565) 이미지 읽기
- 24. Python 및 16 비트 PGM
- 25. Html.ValidationSummary 중복 오류 메시지 표시
- 26. FactoryGirl 경고 시퀀스 번호 다음 사용하지 않음
- 27. ASP.NET MVC 바인딩 - 중복 메시지
- 28. 아파치 미나 UDP 서버 클라이언트에게 메시지 보내기
- 29. 메시지 전달은 무엇을 의미합니까? http 또는 udp
- 30. 시퀀스 번호에서 메시지 요청을받는 방법은 무엇입니까?
음, 지금까지 무엇을 시도 했습니까? –
UDP를 사용하여 이미지를 trasnfer하는 데 사용되는 일반 방법 인 ive를 사용하면 ... 이것은 우리에게 추가 작업이었습니다 .... –