Socket在向服务器端发送字符命令时出现10053错误

wonglaye 2006-04-17 03:30:46
Socket编程,send以后recv的错误代码是10053,说是软件引起的,这种错误是怎么回事呢?
MSDN上说:
Software caused connection abort.
An established connection was aborted by the software in your host computer, possibly due to a data transmission time-out or protocol error.

代码:
int main(int argc, char* argv[])
{
WSADATA Data;
if(WSAStartup(MAKEWORD(2,2),&Data)!=0) cout<<"error"<<endl;
SOCKET s;
s=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN sin;
sin.sin_family=AF_INET;
sin.sin_port=htons(1863);
sin.sin_addr.s_addr=inet_addr("65.54.239.140");



connect(s,(sockaddr *)&sin,sizeof(sin));



char* buf="VER 1 MSNP9 CVR0 \r\n";
char result[256];
memset(result,0,256);
send(s,buf,strlen(buf)+1,0);
if(recv(s,result,256,0)!=SOCKET_ERROR)
cout<<result<<endl;


buf="CVR 2 0x0804 win 5.1 i386 MSNMSGR 8.0.0566 MSMSGS wonglaye@21cn.com \r\n";

memset(result,0,256);
send(s,buf,strlen(buf)+1,0);
Sleep(10000);
if(recv(s,result,256,0)!=SOCKET_ERROR)
cout<<"buf is "<<result<<endl;
else
cout<<"error"<<endl;
int error=WSAGetLastError();
cout<<"error code is "<<error<<endl;
}

谢谢各位了~
...全文
493 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wonglaye 2006-04-20
我简单的在按钮的响应里试了一下,用的是wininet类,返回的staus code是200,但是返回的服务器响应为空,这是为什么?哪里错了呢,请高手赐教,分数好说


void CHttpsDlg::OnOK()
{
CInternetSession is;
CHttpConnection* hc;
CHttpFile* hf;
CString buf;

hc=is.GetHttpConnection("nexus.passport.com",
0,
INTERNET_DEFAULT_HTTPS_PORT,
NULL,
NULL);

hf=hc->OpenRequest(1,
"/rdr/pprdr.asp",
NULL,1,NULL,NULL,
INTERNET_FLAG_SECURE);

int i=hf->SendRequest();
if (i==0) AfxMessageBox("SEND REQ ERROR");
hf->QueryInfo(buf,NULL);
AfxMessageBox("return buf is"+buf);
DWORD result;
hf->QueryInfoStatusCode(result);
buf.Format("return code is %ld",result);
AfxMessageBox(buf);


}
  • 打赏
  • 举报
回复
wonglaye 2006-04-19
up
  • 打赏
  • 举报
回复
wonglaye 2006-04-18
simulatonz,我说的是https协议,要用到ssl不?直接post get就可以吗,thx
  • 打赏
  • 举报
回复
wonglaye 2006-04-18
汗,纯属低级错误
去掉Sleep()
send(s,buf,strlen(buf)+1,0);
改成
send(s,buf,strlen(buf),0);
  • 打赏
  • 举报
回复
simulationz 2006-04-18
连接服务器的web端口(80),发送post,get命令即可,参考http协议
  • 打赏
  • 举报
回复
wonglaye 2006-04-18
谁知道怎么样用c++或VC发送https请求?????
  • 打赏
  • 举报
回复
DJay 2006-04-17
请问一下是如何解决的阿,也和我们分享分享
  • 打赏
  • 举报
回复
wonglaye 2006-04-17
已解决,谢谢
  • 打赏
  • 举报
回复
wonglaye 2006-04-17
成功了,返回值是0;
如果我不Sleep()的话,就不会出现错误,但是服务器返回的值是空!
  • 打赏
  • 举报
回复
striking 2006-04-17
你确定connect成功了?

  • 打赏
  • 举报
回复
相关推荐
发帖
网络编程
加入

1.8w+

社区成员

VC/MFC 网络编程
社区管理员
  • 网络编程
申请成为版主
帖子事件
创建了帖子
2006-04-17 03:30
社区公告
暂无公告