"shutdown()"함수를 사용하여 소켓 fd를 부분적으로 닫을 수 있습니다. 내 질문은 피어 읽기 또는 피어 쓰기 중 하나를 다시 열 수있는 API가 있습니까?소켓 fd가 "shutdown"이라고 불리우는 경우, 다시 열 수 있습니까?
0
A
답변
1
아니요, 불가능합니다. 표준에 따른 종료는 피어에 대한 FIN 요청을 시작합니다. 따라서 통신은 연결의 양쪽에서 종료됩니다. 또한 로컬 TCP 스택의 FSM이 해당 통신이 허용/지원되는 상태로 다시 전환되도록 조작하더라도 피어는이를 처리하지 않습니다.
여기 봐 : http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm
1
소켓 FD는 "종료"라고하고있다, 나는 그것을 "다시"할 수 있습니까?
그것은 닫히지 않았습니다. 그러나 그것은 확실하게 한 방향으로 또는 다른 방향으로, 또는 둘 모두에서 종료되며이를 되돌리기위한 API는 없습니다.
'shutdown()'은 둘 다 지정하지 않는 한 연결의 한 쪽만 종료합니다. – EJP
나는 FIN의 언급을 좋아한다. +1. – linuxfan
모든 종료가 FIN을 보내는 것은 아닙니다. SD_WRITE 만 수행합니다. @linuxfan – EJP