리눅스에서 소켓 통신중에 랜선 뽑히면 알 수가 없더라
얘기 들어보니까 원래 알 수 없는게 맞다고 하던데
그래서 하트비트기능같은걸 넣는거고
근데 얘기들어보면 자바에서는 랜선 뽑혔을 때 write하면 그냥 알 수 있다던데 맞음?
그리고 하트비트 말고 뭔가 알 방법 없음?
리눅스에서 소켓 통신중에 랜선 뽑히면 알 수가 없더라
얘기 들어보니까 원래 알 수 없는게 맞다고 하던데
그래서 하트비트기능같은걸 넣는거고
근데 얘기들어보면 자바에서는 랜선 뽑혔을 때 write하면 그냥 알 수 있다던데 맞음?
그리고 하트비트 말고 뭔가 알 방법 없음?
리슨투마 핫 빗
왜 모르죠?
tcp는 로우레벨 소켓에서도 알아서 될텐데
내 랜선이 뽑히면 기계에서 반응하니까 바로 알 수 있는데
udp는 상대방이 뽑히면 모름
소켓에서 알아서 된다는게 무슨뜻이야? 네트워크 장애가 발생한 상황에서 send하면 자동으로 close 된다는 뜻?
알아서 콜백이 오진 않을거임
바인드한 주소가 더이상 유효하지 않게될거임 아마도
그러면 알아서 tcp에서 끊겼다고 감지해서 닫아질거임(확인 안해봤음)
음 내가 만드는게 클라이언트 프로그램인데 사용중 랜선이 뽑힌 상태에서 write를 해도 아무런 오류도 안나고 시그널도 안날아오더라고
raw소켓임?
tcp 소켓임
소켓 그 자체에는 그런기능 없고 tcp같은 상위프로토콜로 올라가야 있음
잉 그럼 될텐데
아 끊기는거 감지는 read에서 해줘야하고
그냥 write하는거면 버퍼에 담아두기만 해서 그런가봄
소켓이 끊긴거 자체는 recv로 어떻게든 감지가 가능한데 랜선이 뽑혔을 때는 알수가 없더라
그러네 타임아웃같은걸로 검사해줘야 할듯