2010-12-18 2 views
0

내 서버 프 롤 그램에서 들어오는 데이터를 거부하기 위해 소켓의 recv 끝을 종료했습니다.Recv 또는 소켓의 송신 지점이 종료되었는지 확인하는 방법

때로는 나중에 코드에서 내 recv 끝이 닫혀 있는지 확인하고 싶습니다. 어떻게 확인할 수 있습니까? Idock는 getsockopt에서 흥미로운 것을 찾지 못했습니다.

감사합니다, 하기 Sandeep에 대한 getsockopt(/*SO_CONNECT_TIME*/)? ... 그것은 연결 소켓 밤은의 SOCKET_ERROR을 반환하는 방법

+0

왜 소켓의 읽기 부분을 종료 하시겠습니까? 이 소켓이 TCP 소켓이라고 가정합니다. –

답변

0

...

나는 당신은 보장하기 위해 소켓 closesocket 함수()를 사용하는 것이 좋습니다 그것은 정말로 닫혀 있었을뿐만 아니라 폐쇄되었습니다.

+0

고마워,하지만 난 그냥 소켓의 한쪽 끝을 의도적으로 닫고 내 버퍼를 지우기 위해 나중에 다른 쪽 끝의 shutdwon (send end)을하고 싶다. – sandeep

+0

Ok ... 그럼 발신자 쪽에서 종료하고 수신자 쪽에서 closesocket을 종료 하시겠습니까? ... "종료"를 확인 하시겠습니까? – Incubbus

1

아마 당신은 소켓 fd를 저장할 때마다 플래그를 저장합니다. 확실하게 추가 시스템 호출보다 효율적입니다 ...

+0

감사합니다 R. 저는 같은 방식으로 생각하고 있었지만 어떤 syscalls가 있는지 궁금해했습니다. – sandeep

관련 문제