客户端程序出现大量listening状态的端口,是什么原因?
我写了一个客户端程序,发现程序运行后,出现许多listening状态的端口,不知是什么原因,怎么解决?
if(m_ipSvrAddr.sin_family == 0 || m_hWnd == NULL)
{
m_strErrorMessage.LoadString(IDS_ERROR_NETADDR_EMPTY);
m_nNetStatus = SS_DEATH;
return FALSE;
}
if((m_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == INVALID_SOCKET)
{
m_strErrorMessage.LoadString(IDS_ERROR_CREATE_SOCKET);
m_nNetStatus = SS_DEATH;
return FALSE;
}
if(WSAAsyncSelect(m_sock, m_hWnd, WM_SOCKNOTIFY,
FD_READ | FD_WRITE | FD_CONNECT | FD_CLOSE) == SOCKET_ERROR)
{
int errcode = WSAGetLastError();
m_strErrorMessage.Format(IDS_ERROR_SELECT, errcode);
m_nNetStatus = SS_DEATH;
return FALSE;
}
m_nNetStatus = SS_CONNECTIONING;
if(connect(m_sock, (PSOCKADDR)&m_ipSvrAddr, sizeof(m_ipSvrAddr)) == SOCKET_ERROR)
{
int errcode = WSAGetLastError();
if(errcode != WSAEWOULDBLOCK)
{
m_strErrorMessage.Format(IDS_ERROR_CONNECT, errcode);
m_nNetStatus = SS_DEATH;
return FALSE;
}
}
[解决办法]
是这个程序在listening吗?晕
[解决办法]
可能是连接断掉而服务器没断
[解决办法]
似乎与这段代码无关。
[解决办法]
估计某个程序重复运行 端口参数是0的bind绑定函数
[解决办法]
你的这个客户端是不是也是服务端,你的协商通信协议中有要求客户端也监听端口吗
[解决办法]
如果你是Windows XP以上的系统,使用:
Netstat -ano
看看到底是那个进程Listen的
如果是Windows 2000,去下个fport。
呵呵,有可能是Virus作怪。