用socket 得到网页.recv 怎么没反应.估计是http头,不对.谁给看下.

daiyu22 2008-05-09 02:35:40

char* GetHttpHead()
{
char* szHttpHead=new char[512];
memset(szHttpHead,0,512);

strcat(szHttpHead," GET index.asp");
strcat(szHttpHead," HTTP/1.1 \r\n");

strcat(szHttpHead,"Host: localhost");
strcat(szHttpHead,"\r\n");

strcat(szHttpHead," Accept:*/* ");
strcat(szHttpHead,"\r\n");

strcat(szHttpHead," Cache-Control: no-cache");
strcat(szHttpHead,"\r\n");

strcat(szHttpHead," Connection: Keep-Alive");
strcat(szHttpHead,"\r\n");

strcat(szHttpHead," Range:bytes=554554-");
strcat(szHttpHead,"\r\n");

strcat(szHttpHead," User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)");
strcat(szHttpHead,"\r\n");

strcat(szHttpHead,"Accept-Encoding: gzip, deflate");
strcat(szHttpHead,"\r\n");
strcat(szHttpHead,"\r\n");

return szHttpHead;
}

void CVisitNetPageDlg::OnButton1()
{

WORD wVersion =MAKEWORD(2,2);
WSADATA wsData;

WSAStartup(wVersion,&wsData)

SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sockAddr;
sockAddr.sin_addr.S_un.S_addr =inet_addr("127.0.0.1");
sockAddr.sin_family =AF_INET;
sockAddr.sin_port =htons(80);

if(SOCKET_ERROR ==connect(sock,(SOCKADDR*)&sockAddr,sizeof(SOCKADDR)))
{
::MessageBox(NULL,"connect error!","title",MB_OK);
}

char *szSendGet=GetHttpHead();

HWND hWndEdit1 =::GetDlgItem(this->m_hWnd,IDC_EDIT2);

//::SetWindowText(hWndEdit1,szSendGet);

if(SOCKET_ERROR ==::send(sock,szSendGet,sizeof(szSendGet)+1,0))
{
::MessageBox(NULL,"send error!","title",0);
}

AfxMessageBox(szSendGet);

char* szRecvBuf=new char[1024];
memset(szRecvBuf,0,1024);

if(SOCKET_ERROR==::recv(sock,szRecvBuf,1024,0))
{
::MessageBox(NULL,"recv error!","title",0);
}

AfxMessageBox(szRecvBuf);

::SetWindowText(hWndEdit1,szRecvBuf);

::closesocket(sock);
::WSACleanup();
}
connect 还正确.就是recv没反应了.谁给看下.
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
daiyu22 2008-05-09
  • 打赏
  • 举报
回复
正是这回事.刚找到原因.折腾我一天.
hurryboylqs 2008-05-09
  • 打赏
  • 举报
回复
send(sock,szSendGet,sizeof(szSendGet)+1,0))
----------
这个sizeof有问题吧 这里是个指针了,你的GetHttpHead()把长度传出来就好了

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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