我使用以下代码创建了一个套接字。现在我像这样更改套接字的值:
m_Socket++;
即使如此,发送和接收套接字函数仍然成功,没有抛出SOCKET_ERROR。我希望它必须抛出错误。
我做错了什么吗?
结构体sockaddr_in ServerSock;用于绑定要监听的端口号的套接字地址结构。
m_Socket++;
即使如此,发送和接收套接字函数仍然成功,没有抛出SOCKET_ERROR。我希望它必须抛出错误。
我做错了什么吗?
结构体sockaddr_in ServerSock;用于绑定要监听的端口号的套接字地址结构。
char *localIP ;
SOCKET SocServer;
//To Set up the sockaddr structure
ServerSock.sin_family = AF_INET;
ServerSock.sin_addr.s_addr = INADDR_ANY;
ServerSock.sin_port = htons(pLantronics->m_wRIPortNo);
// To Create a socket for listening on wPortNumber
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;
}
// Structure to get the IP Address of the connecting Entity
sockaddr_in insock;
int insocklen=sizeof(insock);
//To accept the Incoming connection on the wPortNumber
pLantronics->m_Socket=accept(SocServer,(struct sockaddr*)&insock,&insocklen);
if(pLantronics->m_Socket == INVALID_SOCKET)
{
shutdown(SocServer, 2 );
closesocket(SocServer );
return FALSE;
}
// To make socket non-blocking
DWORD dwNonBlocking = 1;
if(ioctlsocket( pLantronics->m_Socket, FIONBIO, &dwNonBlocking ))
{
shutdown(pLantronics->m_Socket, 2);
closesocket(pLantronics->m_Socket);
return FALSE;
}
pLantronics->m_sModemName = inet_ntoa(insock.sin_addr);
现在我做:
m_Socket++;//change to some other number ideally expecting send recv to fail.
即使现在使用send recv套接字函数,也不会抛出SOCKET_ERROR错误。
我认为它必须抛出错误。
我是否做错了什么。