다른 컴퓨터의 C#, 서버 및 클라이언트 프로그램에서 c/s 모드로 comunication 프로그램을 작성합니다. 오늘 클라이언트 progarm 서버 progarm에 연결 한 후, 나는 네트워크 어댑터에서 케이블을 꺼냈다. (이 후, 클라이언트와 서버 프로그램은 아무 것도하지 않았다), 이상한 일이 일어났다. 서버 프로그램의 소켓이 여전히 연결 상태를 유지하고 있음을 알았습니다. 내가 네트워크 정보를 검색하고 다음과 같이 정보를 얻기 위해 명령 "에서 netstat -a -n"을 사용 설립네트워크 케이블을 네트워크 어댑터에서 분리 할 때 소켓 상태를 얻는 방법
TCP 192.168.1.2:3645 192.168.1.3:1863
192.168.1.2 (서버 IP 주소) 192.168.1.3 (클라이언트 IP 주소)
이유를 아는 사람이 있습니까? 이 문제를 해결하는 방법. 클라이언트 컴퓨터의 네트워크 케이블이 빠져 나왔을 때 어떻게 서버 프로그램이 이벤트를 수신하고 소켓을 닫을 수 있는지 알고 싶습니다.
제발 나에게 몇 가지 조언이나 솔루션을 제공합니다.
감사
socket.Connected (또는 IsConnected, 잊어 버렸습니다.)는 마지막 명령 이후의 소켓 상태 만 알려주는 것을 기억하십시오. 그래서 마지막 명령이 성공했다면, 그것은 사실로 돌아올 것입니다. 그런 다음 케이블을 당겨 내면 케이블을 사용하려고 시도 할 때까지 케이블이 계속 true입니다. – NibblyPig