socket异常断开处理问题
如何在线程中判断socket是否处于连接中
private void Socket_Listen()
{
IPAddress ServerIp = IPAddress.Parse(Functions.RegeditFunc.IpAddress);
IPEndPoint IEP = new IPEndPoint(ServerIp, Functions.RegeditFunc.DLPort);
Socket Socket_L = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Socket_L.Bind(IEP);
Socket_L.Listen(0);
while (true)
{
newSocket = Socket_L.Accept();
Thread_Recv = new Thread(new ThreadStart(Socket_Recv));
Thread_Recv.Start();
}
}
private void Socket_Recv()
{
Socket_R = newSocket;
while (true)
{
if (Socket_R.Available != 0)
{
RecvByte = new byte[Socket_R.Available];
Socket_R.Receive(RecvByte);
Thread_Data = new Thread(new ThreadStart(Data_Process));
Thread_Data.Start();
}
}
}
现在socket意外断开后Socket_Recv一直挂,没有释放掉。在Socket_Recv线程中改如何判断socket是否连接着。