用socket 得到网页.recv 怎么没反应.估计是http头,不对.谁给看下.
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没反应了.谁给看下.