socket中connect老是返回SOCKET_ERROR? 为什么

cg2003 2009-01-14 04:32:06
开发环境: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;
}

请问是怎么回事情,服务器端 客户端现在都是在本机运行
...全文
1441 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cg2003 2009-01-15
  • 打赏
  • 举报
回复
请哪位高手给我看看 非常感谢
cg2003 2009-01-15
  • 打赏
  • 举报
回复
我现在用的WIN2000系统 只有趋势有防火墙 然后我关闭了防火墙 也不行的
vss2008 2009-01-15
  • 打赏
  • 举报
回复
mark
noenoughmemory 2009-01-15
  • 打赏
  • 举报
回复
mark
hityct1 2009-01-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 oyljerry 的回复:]
昏倒,居然是IP写错了...
[/Quote]

呵呵,这种问题只有神仙能解决啦。
cg2003 2009-01-15
  • 打赏
  • 举报
回复
GetLastError(); //在这里返回值10060

我安装的趋势杀毒软件 我把防火墙关闭了也还是不行的 我打开防火墙 客户端是SOCK1.1就可以链接到服务器的,到底是怎么回事情啊 请高手指点
oyljerry 2009-01-15
  • 打赏
  • 举报
回复
昏倒,居然是IP写错了...
cg2003 2009-01-15
  • 打赏
  • 举报
回复
晕倒 是我把客户端的IP地址写错了一位 现在好了 呵呵 谢谢大家
oyljerry 2009-01-14
  • 打赏
  • 举报
回复
WSAETIMEDOUT
10060
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.


主机没有反应.注意你的防火墙.
hityct1 2009-01-14
  • 打赏
  • 举报
回复
使用WSAGetLastError看看错误码是什么?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧