如何将socket通信中receive来的内容存进html?

dairuijia 2007-05-02 07:32:02
就是将socket通信过程中receive来的内容存进html里面。请问怎么做?谢谢
...全文
241 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dairuijia 2007-05-04
  • 打赏
  • 举报
回复
up
dairuijia 2007-05-03
  • 打赏
  • 举报
回复
dairuijia 2007-05-02
  • 打赏
  • 举报
回复
这个是dev c++ 不是vc 有这样的方法么?
jinhaijian 2007-05-02
  • 打赏
  • 举报
回复
你可以用string把所有的内容连接起来,VC中调试时,字符串显示就有三种方式,一种Text、XML、HTML。

还有你可以直接用WinInet中的函数来代替用Socket.
dairuijia 2007-05-02
  • 打赏
  • 举报
回复
上面是我的程序 ,就是将两次recv(sockfs,recvline,MAXLINE,0)<0存到一个html里,以便看到是不是真的接受了想要的内容。
dairuijia 2007-05-02
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string>
#include <winsock.h>
#include <winsock2.h>
#include <iostream>
#define MAXLINE 10000
#define SA struct sockaddr
#define SOCKET int

using namespace std;
int main (int argc,char * argv[])
{

string s1,s2,s3,s4;
cin>>s1>>s2>>s3>>s4;


char recvline[MAXLINE+1];
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,1),&wsaData)!=0)
{
perror("initial error!");
_sleep(2000);
WSACleanup();
exit(1);
}

struct sockaddr_in server_addr;
struct hostent *hp;
hp=(struct hostent *)malloc(sizeof(struct hostent));
hp=gethostbyname("www.baidu.com");
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(80);
memcpy((char*)&server_addr.sin_addr,(char*)hp->h_addr,hp->h_length);
free(hp);

SOCKET sockfd;
if ((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)/*判断socket是否出错*/
{
perror("socket error");
_sleep(2000);
exit(1);
}



if(connect(sockfd,(SA*)&server_addr,sizeof(server_addr))<0) //连接socket
{
perror("connection error!");
_sleep(2000);
exit(1);
}

string strkey=(string)"GET /s?wd="+s2+(string)"&cl=3 HTTP/1.1\r\n\r\n"
"Accept: */*\r\n\r\n"
"Referer: http://www.baidu.com/\r\n\r\n"
"Accept-Language: zh-cn\r\n\r\n"
"Accept-Encoding: gzip, deflate\r\n\r\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)\r\n\r\n"
"Host: www.baidu.com\r\n\r\n"
"Connection: Keep-Alive\r\n\r\n";
const char* ptrkey =strkey.c_str();
char bufferkey[2048];
for (int i=0;i<strkey.length();i++)
{
bufferkey[i++]=*ptrkey++;
}
if(send(sockfd,bufferkey,sizeof(bufferkey),0)<0) //发送关键字
{
perror("send error!");
_sleep(2000);
exit(1);
}
else
{
cout<<"sending message to baidu....\r\n\r\n";
_sleep(2000);
}
if(recv(sockfd,recvline,MAXLINE,0)<0) //搜索结果返回
{
perror("recv error!");
_sleep(2000);
exit(1);
}
else
{
cout<<"receiving message from baidu....\r\n\r\n";
_sleep(2000);
}
closesocket(sockfd);

SOCKET sockfs;
if ((sockfs=socket(AF_INET,SOCK_STREAM,0))<0)/*判断socket是否出错*/
{
perror("socket error");
_sleep(2000);
exit(1);
}



if(connect(sockfs,(SA*)&server_addr,sizeof(server_addr))<0) //连接socket
{
perror("connection error!");
_sleep(2000);
exit(1);
}
string strclick= (string)"GET /w.gif?query="+s2+(string)"&e=959f"/*&e=?不知道怎么处理*/+(string)"&title="+s4+(string)"&url=http%3A//www.rfidinfo.com.cn/Portal/Simple/"
"Contact_4209.html&spos=4&path=http://www.baidu.com/s?ie=gb2312&bs=rfid&sr=&z=&cl=3&f=8&wd=rfid+"
"%D0%C5%B4%EF%BB%E3%B4%CF&ct=0&t=1177206870437" /*url怎么处理?*/+
(string)"HTTP/1.1\r\n\r\nAccept: */*\r\n\r\nReferer: http://www.baidu.com/s?wd="+s2+(string)"&cl=3\nAccept-Language: zh-cn\r\n\r\n"
"Accept-Encoding: gzip, deflate\r\n\r\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)\r\n\r\n"
"Host: s.baidu.com\r\n\r\n"
"Connection: Keep-Alive\r\n\r\n" ;
const char* ptrclick =strkey.c_str();
char bufferclick[2048];
for (int i=0;i<strclick.length();i++)
{
bufferkey[i++]=*ptrkey++;
}

if(send(sockfs,bufferclick,sizeof(bufferclick),0)<0) //点击搜索结果
{
perror("send error!");
_sleep(2000);
exit(1);
}
else
{
cout<<"sending message to baidu....\r\n\r\n";
_sleep(2000);
}
if(recv(sockfs,recvline,MAXLINE,0)<0) //返回点击内容
{
perror("recv error!");
_sleep(2000);
exit(1);
}
else
{
cout<<"receiving message from baidu....\r\n\r\n";
_sleep(2000);
}
cout<<"succeed!";
_sleep(2000);
closesocket(sockfs);
exit(0);
}

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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