返回信息流我想做一个C语言的程序,就是一个代理服务器,如果用户想访问某个黑名单网站的话就返回一个报错页面给浏览器,
我的基本想法是用send函数,然后把要发送的信息写在一个字符串buff中(buff中包含http包头还有html代码),然后把字符串发给socket的文件描述符,但是事实上得到的结果却是浏览器每次总是反应收到了一个bin文件,也就是浏览器似乎没有读懂我想发的信息。
各位有谁做过这方面的东西的,请不吝赐教,谢谢~
P.S.原谅我写这么长的题目,主要是不清楚该不该在这版发问,多多海涵~
这是一条镜像帖。来源:北邮人论坛 / cpp / #33750同步于 2009/12/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]关于在linux中的c语言socket编程的问题
youngboy
2009/12/18镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
这里面牵扯相当多东西 那么我们先假设你socket操作全部是正确的吧
浏览器解析错误说明你的http包内容有错 你可以用http sniffer抓一下看看浏览器到底收到了什么
我是这样写的,如果是socket的问题的话,应该是根本没有回应,但是现在的情况是浏览器还是有反应的,所以我觉得应该是buffer的问题,但是不太清楚哪几个参数是必须的,这个字符串里边的http包头是我用wireshark抓的标准的正常网站的回应~直接复制到这个buffer里来的~
pdata[PACKLENGTH]="HTTP/1.1 200 OK\r\nDate: Mon, 24 Oct 2005 06:54:41 GMT\r\nCache-Control: no-cache\r\nConnection: close\r\nContent-Type: text/html;charset=gb2312\r\n\r\n<html><head>hello</head><body>This is a test program</body></html>";
send(new_fd,&pdata,PACKLENGTH+1,0);
【 在 binux 的大作中提到: 】
: header里面包含解析方式了吗?
: Content-Type: text/html
谢谢,google了一下才知道curl是怎么回事儿,灰常灰常犀利~
【 在 jokerlee 的大作中提到: 】
: 你试试curl库吧, 自己封装http包难免各种错误