2017-02-15 8 views
1

SOCK_DGRAM 기반 소켓이있는 recvfrom() 인 빈 페이로드를 수신 할 수 있습니까? 서버는 메시지를 다시 보내기 위해 클라이언트 헤더에만 관심이 있습니다 (즉, 단일 메시지, 프로토콜 만 전송).SOCK_DGRAM을 사용할 때 recvfrom으로 빈 페이로드를 받습니까?

+0

예. UDP를 사용하여 길이가 0 인 데이터 그램을 보낼 수 있습니다. – EJP

+0

@EJP 어떻게? 'recvfrom()'은 길이가 0 인 것을 결코 차단하지 않고, 예를 들어'cat/dev/null | nc -u 127.0.0.1 1234' busy busy에서'recvfrom()'은 아무 것도하지 않습니다. – user7434748

+0

길이가 0 인 매개 변수를 제공하는'send()'또는'sendto()'를 사용합니다. 'recvfrom()'는 데이터 그램이 수신되거나 에러가 발생할 때까지 차단 될 것이다. – EJP

답변

0

0 크기의 데이터 그램은 소켓 API 관점에서 완벽하게 유효하며 적어도 프로토콜 IP, UDP, UNIX 프로토콜을 통해 완벽하게 유효합니다. 하나는 보내고받을 수 있습니다.