소켓 프로젝트에서 작업 중입니다. TCP로 ~ 4kb 데이터를 보내려고합니다. 나는 여기서 질문 할 필요가있다. 즉, TCP를 사용하여 ~ 4kb 데이터를 보내면 내 데이터 처리기 기능이이 데이터를 한 번 더 수신 할 수 있습니까? 즉 RECEIVE (서버 측) 함수가 2 번 반환 될 수 있습니다 (4KB 데이터를 한 번 보내면)? 이 사실을 이해할 수 있으면 자체 패킷 처리 시스템을 만들기 시작할 것입니다.소켓 데이터 처리 - 데이터 패킹 (TCP)
3
A
답변
3
간단히 말해서 : 예.
TCP는 바이트 스트림을 전송하지만 TCP 연결에는 메시지 (및 해당 경계)에 대한 언급이 없습니다. 2 바이트를 보내더라도 두 개의 별도의 청크로받을 수 있습니다 (이론적으로는 실제로는 거의 불가능합니다). 따라서 데이터 스트림에 몇 가지 표시를해야합니다. 나는 헤더가 적어도 다음 메시지 본문의 길이를 포함하는 모든 메시지 앞에 "메시지 헤더"를 작성하는 것이 좋습니다. 주의 할 것은 헤더 자체도 수신 할 때 조각화 될 수 있습니다.
0
관련 문제
- 1. TCP 소켓 작업원의 부실 데이터
- 2. 효율적인 웹 소켓 데이터 처리
- 3. 자바 스크립트에서 TCP 데이터 처리
- 4. byte []에 데이터 패킹
- 5. OpenCV의 픽셀 데이터 패킹
- 6. Python에서 복잡한 데이터 패킹/언팩
- 7. TCP 소켓 GZIP 압축 형식으로 데이터 보내기
- 8. 소켓 디자인 : 연결 요청 처리 TCP/UDP
- 9. epoll을 사용한 다중 TCP 연결에서의 데이터 처리
- 10. TCP 소켓을 통한 잘못된 데이터 처리
- 11. 스레드를 통해 C# 처리 된 소켓 데이터
- 12. C++ 다중 UDP 소켓 데이터 처리
- 13. 소켓 서버에서 보내고받은 데이터 처리 중 #
- 14. TCP 소켓 (서버) 디자인
- 15. TCP 클라이언트 데이터 수신
- 16. 소켓 및 데이터 지속성
- 17. node.js tcp 소켓 연결 해제 처리
- 18. TCP/IP 고속 데이터 로거
- 19. 원시 소켓 임의 데이터
- 20. NSMutableData를 사용하는 Objective-C 패킹 데이터?
- 21. as3을 사용하여 이진 데이터 패킹/압축 풀기
- 22. 멀티 프로세서 데이터 통신을위한 구조 패킹
- 23. 부스트 ASIO의 TCP - 버퍼의 데이터는 다른 소켓 쓰기 데이터 - 어딘가
- 24. 노드 TCP 소켓 : Enfora MT4000에서 이진 데이터 읽기
- 25. 소켓에서받은 데이터 처리
- 26. TCP 데이터 손실 이벤트
- 27. TCP 연결에서 데이터 읽기
- 28. TCP 스트림의 데이터 손실
- 29. tcp 포트에서 데이터 수신
- 30. 루비에서 TCP 데이터 송수신
이것은 일반적인 주제입니다 : http://tiny.cc/io에서이 중 일부를 다룹니다. –
@MarcGravell 감사합니다! 나는이 기사를 읽을 것이다 :) –
그 반대도 발생할 수있다. 여러 번의 전송으로 하나의 수신이 발생할 수 있습니다. TCP는 별개의 "메시지"가없는 단순한 스트림입니다. 다른 사람들이 지적했듯이 완전한 메시지 또는 여러 개의 메시지가 수신 된 시점을 식별 할 수있는 ** 프로토콜 **을 개발해야합니다. –