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;
}

谢谢各位了~
...全文
696 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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成功了?

18,363

社区成员

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

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