Я создал сокет, используя следующие строки кода, и я получил действительный сокет, и между клиентским и серверным компьютерами установлено соединение.Есть ли вероятность того, что сокет станет недействительным из-за сетевых помех или по любой другой причине.
Если да, то как мы можем проверить, действителен ли сокет?
SOCKET SocServer;
//To Set up the sockaddr structure
ServerSock.sin_family = AF_INET;
ServerSock.sin_addr.s_addr = INADDR_ANY
ServerSock.sin_port = htons(PortNumber);//port number of 5005
// To Create a socket for listening on PortNumber
if(( SocServer = socket( AF_INET, SOCK_STREAM, 0 )) == INVALID_SOCKET )
{
return FALSE;
}
//To bind the socket with wPortNumber
if(bind(SocServer,(sockaddr*)&ServerSock,sizeof(ServerSock))!=0)
{
return FALSE;
}
// To Listen for the connection on wPortNumber
if(listen(SocServer,SOMAXCONN)!=0)
{
return FALSE;
}
Я знаю, что ямогу проверить наличие INVALID_SOCKET, что другими словами означает, что сокет равен 0. Есть ли другой выход, потому что мой SocServer будет иметь значение скажем 2500, я хочу проверить, действителен ли этот сокет.