나는 C++ 소켓 코드를 작성하고 있는데 도움이 필요하다! 내 프로그램에서 메시지의 크기를 알지 못한다면 파일의 일부 또는 자체 파일을 보낼 수 있습니다. 파일은 거대한 파일 일 수 있으므로 패킷의 최대 크기를 지정해야합니다. 최대치를 초과하면 그것을 하나 이상으로 나누어야합니까?C++ 소켓 프로그래밍을 사용하는 최대 TCP 패킷 크기
2
A
답변
9
그것은 때문에 TCP
를 사용하는 경우 "패킷"와 "메시지"에 대해 생각하는 건설 결코 :
- 네트워크 엔진은 최적의 세그먼트 크기를 결정하는 자신의 방법을 가지고
- 세그먼트 크기는 차이가 없습니다합니다 응용 프로그램 코드에 : 수신 TPC는
당신은이 디자인 된 방식으로 TCP를보아야 수신 프로세스에 데이터를 전달하기 전에 세그먼트를 병합 무료입니다 : R eloyable 바이트 스트림 서비스. 그래서 충분히 커다란 블록을 작성하면 엔진과 무수히 많은 규칙이이를 처리 할 것입니다.
2
문제는 다소 애매하지만 접근법은 보편적으로 보입니다. 송신기는 수신기가 예상해야하는 바이트 수를 표시해야합니다. 리시버는이 표시를보고 나서 많은 바이트를 수신 할 준비를해야합니다.
패킷 크기와 관련하여 일반적으로 응용 프로그램은 네트워크에서 바이트가 전달되는 방식에 대해 걱정하지 않지만 응용 프로그램은 send
및 recv
시스템 호출을 너무 많이 호출하지 않도록 신경 쓸 수 있습니다. 효율성이 확장 성의 핵심 인 동시 서버에서 특히 중요합니다. 따라서 너무 많은 시스템 호출을하지 않을 정도로 큰 버퍼를 원하지만 데이터가 커널 버퍼로 유출되기를 기다리는 동안 너무 오래 블록하지 못하게하는 버퍼는 필요 없습니다. 일반적으로 send/recv 소켓 버퍼 크기를 맞추는 것으로 충분하지만 네트워크의 대역폭과 대기 시간, 수신기의 데이터 유출 속도 및 연결 당 허용 할 시간 간격에 따라 달라집니다 병행 중에 처리됩니다.
관련 문제
- 1. Twisted Python : 최대 패킷 크기? 플러시 소켓?
- 2. 에뮬레이터 TCP 패킷 크기
- 3. Java 소켓 TCP 최대 세그먼트 크기
- 4. C++ 소켓 프로그래밍 TCP/IP 소켓의 최대 크기 버퍼?
- 5. tcp/ip 소켓 용 수신 버퍼 크기
- 6. 반경의 최대 패킷 크기
- 7. 최대 패킷 크기 발견
- 8. 소켓 프로그래밍을 사용하여 C#
- 9. 소켓 프로그래밍을 사용하는 서버/클라이언트
- 10. TCP ReceiveBufferSize 최대 크기 .Net Framework
- 11. C#에서 TCP 패킷 만들기
- 12. C#에서 TCP 패킷 삭제 처리
- 13. Android :: TCP 패킷
- 14. iPhone 최대 소켓 버퍼 크기
- 15. 소켓 TCP 예제 (C)
- 16. tcp 패킷 삽입 -?
- 17. 소켓 프로그래밍을 사용하는 Unity 멀티 플레이어
- 18. tcp/ip 패킷 수신기
- 19. 소켓을 통한 패킷 크기 수정
- 20. .NET 2.0을 사용하여 TCP/IP 및 소켓 프로그래밍을 배우려면 어떻게해야합니까?
- 21. C 프로그래밍을 사용하는 Makefile
- 22. 소켓 프로그래밍 PF 패킷 소켓
- 23. TCP 패킷 생성
- 24. 소켓 프로그래밍을 사용하는 Android 멀티 플레이어 게임
- 25. FFmpeg av_read_frame 및 최대 패킷 크기
- 26. tcp 연결에서 ... Java (패킷)
- 27. Java TCP 소켓 스니핑
- 28. Ruby TCPSocket으로 패킷 크기 지정
- 29. C++ TCP 소켓 쓰레기 값
- 30. tcp/ip 패킷 변경 C++ 또는 java
미리 감사드립니다. – sana
ZeroMQ를 살펴보십시오. 메시지 전달을 즐겁게 만듭니다. – Tibor