Scoket客户端连不上服务器.

yanjinbin0 2009-02-11 11:29:24
服务器代码:--部分代码
sockaddr_in local;
local.sin_family=AF_INET;
local.sin_addr.s_addr=inet_addr("127.0.0.1")/*htonl(INADDR_ANY)*/;
local.sin_port=htons((u_short)8888); //设置端口号 进行字节序列转换
// 绑定服务器的ip地址和端口号
if(bind(hServer, (sockaddr*)&local, sizeof(local))!=0)
{
return 0;
}

if(listen(hServer, 10) != 0)
{
return 0;
}
SOCKET client;//得到客户段SCOKET对象
sockaddr_in from;//得到客户端IP地址和端口信息
PCHAR temp = NULL;
int fromlen = sizeof(from);
client = accept(hServer, (struct sockaddr*)&from, &fromlen);//等待请求进来

客户端代码:
sockaddr_in sock;
sock.sin_family = AF_INET;
sock.sin_port = htons((u_short)8888)/*htons(8888)*/;
sock.sin_addr.s_addr = inet_addr("127.0.0.1");
if (connect(sk, (sockaddr*) &sock, sizeof(sock) == SOCKET_ERROR))
{
//错误处理 
printf("请求连接失败!\n");
LPVOID lpMsgBuf; //LPVOID无符号指针
FormatMessage( /*将出错信息转换字符串*/
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL);
printf("%s\r\n",(LPTSTR)lpMsgBuf);
LocalFree(lpMsgBuf);//释放内存
}

客户端这边怎么也连不上服务器端,获取到的出错信息是:系统检查到调用中尝试使用指针参数时的无效指针地址.

难道说是connet里面使用的参数有无效指针,但我看了下都是有值的啊.

大家指点下,谢谢.
...全文
142 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanjinbin0 2009-02-12
  • 打赏
  • 举报
回复
我加了:memset(&sock,0,sizeof(sock));这段还是没用.
WSAGetLastError获取到的错误是:系统检查到调用中尝试使用指针参数时的无效指针地址.
我单步看了下connect里面的参数值都有值啊,没发现无效的值,怎么就是失败呢????
stavck 2009-02-12
  • 打赏
  • 举报
回复
看看这里,你会明白
http://blog.vckbase.com/arong/archive/2005/10/06/12913.html
Eleven 2009-02-12
  • 打赏
  • 举报
回复
connect里GetLastError看看返回值是什么?
yanjinbin0 2009-02-12
  • 打赏
  • 举报
回复
UP下吧.看有没有人知道我这是什么错误.
hityct1 2009-02-12
  • 打赏
  • 举报
回复
前面对sk怎么操作的?
yanjinbin0 2009-02-12
  • 打赏
  • 举报
回复
该设置的都设置了,怎么还是出错.
晕忽忽的了.
yanjinbin0 2009-02-11
  • 打赏
  • 举报
回复
服务器端是没错的,因为我用netstat -ano 命令查看了下,该IP+端口是存在的.

就客户端connect这函数不知道那出错了.
yanjinbin0 2009-02-11
  • 打赏
  • 举报
回复
WSAStartup设置Socket版本和socket(AF_INET, SOCK_STREAM, 0)创建scoket对象是成功的,函数都是做判断了,它们执行是成功的.

现在就是connect这个函数调用出错???

我IP地址和端口设置都没错啊,怎么就是出错....
什么原因啊.
sys0008 2009-02-11
  • 打赏
  • 举报
回复
查看socket每一个函数调用的返回值是否正确

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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