c++ - 데이터 차단 문제를 수신하기 위해 recv를 사용하는 소켓(TCP)이 있습니까?
扔个三星炸死你
扔个三星炸死你 2017-06-10 09:48:28
0
2
1289

일반적으로 말하자면: 소켓(TCP)은 데이터를 수신하기 위해 recv를 사용합니다. 커널 캐시에 데이터가 없으면 차단됩니다.

그렇다면 TCP 연결은 끊어지지 않았지만 상대방이 데이터를 보내지 않는다면, recv 함수 호출로 인해 프로그램이 영원히 차단되나요?

扔个三星炸死你
扔个三星炸死你

모든 응답(2)
洪涛

소켓은 차단과 비차단의 두 가지 유형으로 구분됩니다. 기본 차단 모드는 매개변수 설정을 통해 비차단으로 수정할 수 있습니다.
차단의 의미: 실제로는 TCP/IP 프로토콜 스택의 버퍼입니다. 1) 차단 모드: 버퍼에 데이터가 없으면 데이터가 반환될 때까지 기다립니다.
(2) 비 차단 모드: 데이터가 없으면 매개변수가 즉시 반환됩니다. Python에서는 예외가 발생합니다)

大家讲道理

setockopt() 함수를 사용하여 제한 시간을 설정할 수 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿