2 qq 26821749 qq_26821749 于 2015.06.02 23:54 提问

【求助】网络编程的问题

图片说明图片说明
在连接服务器和客户端时,服务器正常启动,当客户端想要连接服务器时就出现了这个问题,我用一个窗口的输出找到了是在accept那里出了问题,可是感觉都没错啊,而且好像报错的内容accept没用到吧图片说明

4个回答

caozhy
caozhy   Ds   Rxr 2015.06.02 23:56

报错好像是你试图访问cstring的substr之类的函数,下标越界。

qq_26821749
qq_26821749 你好,就是一样的程序我改成ANIS 环境下就可以了,这是怎么回事(是不是服务器和客户端的编码环境得一样,就是UNICODE和ANIS是不是得一样才可以)
2 年多之前 回复
gamefinity
gamefinity   Rxr 2015.06.03 06:20
  • 检查accept函数的参数的值。
  • 因为你的参数的值有问题,导致accept执行过程中报错
qq_26821749
qq_26821749 你好,就是一样的程序我改成ANIS 环境下就可以了,这是怎么回事(是不是服务器和客户端的编码环境得一样,就是UNICODE和ANIS是不是得一样才可以)
2 年多之前 回复
q3733353520
q3733353520   2015.06.03 09:01

我也觉得是accept参数的问题,检查下参数类型吧

oyljerry
oyljerry   Ds   Rxr 2015.06.03 10:38

addr,len等几个变量都类型,数据正确吗

qq_26821749
qq_26821749 你好,就是一样的程序我改成ANIS 环境下就可以了,这是怎么回事(是不是服务器和客户端的编码环境得一样,就是UNICODE和ANIS是不是得一样才可以)
2 年多之前 回复
qq_26821749
qq_26821749 应该没错吧,麻烦帮我看下好吗
2 年多之前 回复
qq_26821749
qq_26821749 afx_msg LRESULT CQServerDlg::OnSocket(WPARAM wParam, LPARAM lParam) { SOCKET sock_temp = SOCKET_ERROR; sockaddr_in addr; int len = sizeof(sockaddr_in); char buf_rec[256]=""; CString str_name = _T(""); switch( lParam ) {case FD_ACCEPT: MessageBox(_T("OK")); //这里会弹出窗口 sock_temp = accept(socket_server,(sockaddr *)&addr,&len); MessageBox(_T("OK")); //还没弹出就显示错误了 if(sock_temp == INVALID_SOCKET ) { MessageBox(_T("接受客户端的连接失败")); return 0; } break; } return 0; }
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片