socket中connect老是返回SOCKET_ERROR? 为什么
开发环境:VC2005.NET
服务器端程序应该正确 因为我在客户端用SOCK1.1做可以链接上,但用SOCK2.0却不能链接上
服务器端:
// 绑定侦听端口到完成端口
BuidSocktoIocp(ListenSocket, hIocp);
// 绑定侦听端口地址
SOCKADDR_IN address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = htonl(INADDR_ANY);
address.sin_port = htons(PORT);
if (bind(ListenSocket, (PSOCKADDR)&address, sizeof(address)) == SOCKET_ERROR)
{
ShowError(_T("bind()"));
return;
}
// 开始侦听连接
if (listen(ListenSocket, SOMAXCONN) == SOCKET_ERROR)
{
ShowError(_T("listen()"));
return;
}
**********************************
while(!pthis->isExit)
{
// 接收连接
addr_length = sizeof(ClientAddr);
ClientSocket = WSAAccept(pthis->ListenSocket, (SOCKADDR *)&ClientAddr, &addr_length, NULL, 0);
if(ClientSocket == SOCKET_ERROR)
{
if(!pthis->isExit)
pthis->ShowError(_T("WSAAccept()"));
else
continue; // 退出
}
pthis->BuidSocktoIocp(ClientSocket, pthis->hIocp);
pthis->OnAccept(ClientSocket);
}
客户端:
client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
************************
// 连接到服务器
SOCKADDR_IN address;
address.sin_family = AF_INET;
address.sin_addr.S_un.S_addr = inet_addr("10.23.30.12");
address.sin_port = htons(2007);
if (connect(client, (SOCKADDR *)&address, sizeof(address)) == SOCKET_ERROR)
{
DWORD I=GetLastError(); //在这里返回值10060
AfxMessageBox("Failed to WSAConnect.\n");
WSACleanup();
return;
}
请问是怎么回事情,服务器端 客户端现在都是在本机运行