C# 서버 및 클라이언트을 작성하고 있지만 클라이언트 연결이 끊어 지더라도 예외가 발생하지 않습니다. 그것은 클라이언트가 여전히 거기에 있다고 생각하면서 클라이언트로부터 계속해서 읽습니다. 클라이언트가 없어지더라도 더 이상 차단하지 않습니다. 클라이언트가 더 이상 사용할 수 없으면 예외가 throw 될 것으로 예상됩니다.C# NetworkStream 예외가 발생하지 않음
private TcpListener server;
private NetworkStream stream;
private TcpClient client;
private byte[] buffer = new byte[1];
server = new TcpListener (serverIp, _portNumber);
server.Start();
stream = client.GetStream();
// 클라이언트가 없어 졌을 때 예외를 던지기를 원하는 부분.
try
{
stream.Read(buffer,0,1);
}
catch(Exception e)
{
#if (DEBUG)
Debug.Log ("Failed Rading " + e.Message);
#endif
return 0;
}
어떤 도움을 주시면 감사하겠습니다.
몇시에 시간 제한을 설정해야합니까? – Programmer
위양성과 위양성의 절충안을 선택하십시오. 네트워크 및 드롭 된 연결을 감지하는 속도에 따라 다릅니다. 합리적인 값은 대부분의 경우 [1, 30] 초입니다. 또한 모든 경우에 실패한 연결을 감지 할 수있는 다른 방법이 없음을 이해하십시오. 타임 아웃 만이 유일한 해결책입니다. – usr
코드 스 니펫을 게시 하시겠습니까? TcpClient 및 NetworkStream 클래스에는 모두 시간 초과 기능이 있습니다. 어떤 것들을 설정해야합니까? – Programmer