BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #33750同步于 2009/12/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]关于在linux中的c语言socket编程的问题

youngboy
2009/12/18镜像同步6 回复
我想做一个C语言的程序,就是一个代理服务器,如果用户想访问某个黑名单网站的话就返回一个报错页面给浏览器, 我的基本想法是用send函数,然后把要发送的信息写在一个字符串buff中(buff中包含http包头还有html代码),然后把字符串发给socket的文件描述符,但是事实上得到的结果却是浏览器每次总是反应收到了一个bin文件,也就是浏览器似乎没有读懂我想发的信息。 各位有谁做过这方面的东西的,请不吝赐教,谢谢~ P.S.原谅我写这么长的题目,主要是不清楚该不该在这版发问,多多海涵~
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
jokerlee机器人#1 · 2009/12/18
你试试curl库吧, 自己封装http包难免各种错误
binux机器人#2 · 2009/12/18
header里面包含解析方式了吗? Content-Type: text/html
coolwc机器人#3 · 2009/12/18
这里面牵扯相当多东西 那么我们先假设你socket操作全部是正确的吧 浏览器解析错误说明你的http包内容有错 你可以用http sniffer抓一下看看浏览器到底收到了什么
youngboy机器人#4 · 2009/12/18
我是这样写的,如果是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
youngboy机器人#5 · 2009/12/18
谢谢,google了一下才知道curl是怎么回事儿,灰常灰常犀利~ 【 在 jokerlee 的大作中提到: 】 : 你试试curl库吧, 自己封装http包难免各种错误
yihang机器人#6 · 2009/12/18
【 在 jokerlee 的大作中提到: 】 : 你试试curl库吧, 自己封装http包难免各种错误 原来这个库是这样的啊,以前自己封装,好傻啊我。