您的位置:首页 > 理论基础 > 计算机网络

一段c语言实现的发送http消息代码

2008-03-13 08:52 627 查看
最近青岛到处都在修路,本来拥挤的的公交车真是越来越拥挤了,有时候就连站的地方都没有了,变成了金鸡独立,我都在想像我这样重量级的人物多挤几次身体也变成标准苗条了,那些标准苗条的人我想肯定变面条了。哈哈如今的中国真是什么都缺唯独不缺的就是人,当年毛爷爷他老人家真是一大伟略啊,人多好干事啊,你想公交车上都可以挤的那么热闹。

没有办法了,很多的事情就是要去承受,我前两天看过一篇文章,题目是没有人生规划,你离挨饿只隔三天。其中有讲到其实无论现在在干什么多要去干,因为很多的事情不可能是一蹴而就的,都是要去一个过程磨练,我毕业刚刚一年多,虽说年龄不小,可是浪费的光阴太多是,所以了实至今日才是混了个往届生。确实人是需要去磨练的,不管实现打短工,扫厕所,这是上天对自己意志的磨练,一个意志坚强有力的人是不会被打垮,总有一天就达到自己的梦想,如果经不起这样的意志磨练,到最后我想结局可想而知,也许是扫一辈子厕所,当然不会没有成绩也许被升为厕所所长,这个名字到是挺响亮的,反正没有一个人不上厕所的,您说对吧。

其实说了这么多都是在想不管现在怎么样管现在什么样的决定,既然要做了就不要后悔,努力去做好就是了。亲戚朋友知道我要辞职了,都一直在劝我说,好好在青岛待着算了,别这跑那跑的了,老大不小的人,等安下家在青岛好好的混也是不错的。想想不是全无道理,也许这是一个过程吧,安逸的生活不太适合自己,也许自己现在感觉还是太年轻总是想去做一做以前自己想要做的事情。当初根公司提出离职,老板比较吃惊也很纳闷,做的很好为什么要辞职。其实说句实话我辞职也是自己一时的脑热,现在想想既然已经说出口了就不能在收回了,这样连自己都瞧不起自己,想好就去做,不管结局了,也许这是上天为我安排的又一次考验吧。

说了这么多您烦了吧,不好意思喽有些事情能是要寫出來才会舒服一点,这样在工作中才不会有压力,IT的工作压力是可想而知的,所以既然我选择了blog,您又选择了我的代码,所以只好委屈您作出一点点时间的牺牲,听俺发发牢骚和心里感受吧。也许您会更多的了解俺,咱们彼此可以做朋友 您说呢。

好了言规正传这是我在做项目中用到的一段与服务器进行交互的test代码,这段代码不是我自己写得,是我共享别人的,但是我有明白他是怎么使用的,所以代码共享贴出来了。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

int htconnect(char *host, int port){
int white_sock;
struct hostent * site;
struct sockaddr_in me;
site = gethostbyname(host);
if (site==NULL) return -2;
white_sock = socket(AF_INET,SOCK_STREAM,0);
if (white_sock <0) return -1;
memset(&me, 0, sizeof(struct sockaddr_in));
memcpy(&me.sin_addr, site-> h_addr_list[0], site-> h_length);
me.sin_family = AF_INET;
me.sin_port = htons(port);
return (connect(white_sock, (struct sockaddr *)&me,sizeof(struct sockaddr)) <0) ? -1 : white_sock;
}

int htsend(int sock, char *fmt, ...){
char BUF[1024];
va_list argptr;
va_start(argptr,fmt);
vsprintf(BUF,fmt,argptr);
va_end(argptr);
printf(BUF);
return send(sock,BUF,strlen(BUF),0);
}

int main(int argc,char **argv){
int black_sock;
char msg[1024]={0};
char request[1024] = {0};
char URL[1024] = {0};
sprintf(URL,"/cgi-bin/admin/network_network_action.cgi");

char *Content = "application/x-www-form-urlencoded";

char conf[1024] = {0};

sprintf(conf,"dhcp=off&ipaddress1=10&ipaddress2=88&ipaddress3=100&ipaddress4=48&netmask1=255&netmask2=255&netmask3=255&netmask4=0&gateway1=10gateway2=88&gateway3=100&gateway4=254&nameserver1=&nameserver2=&nameserver3=&nameserver4=&netsecondary1=&netsecondary2=&netsecondary3=&netsecondary4=");

black_sock = htconnect("10.88.100.25",80);
if (black_sock <1)
return (-1);

sprintf(request, "POST %s HTTP/1.0/r/nAccept: */*/r/nContent-Length:%d/r/nContent-Type: %s/r/nAuthorization:Basic QWRtaW46MDAwMA==/r/nCredentials:aaaaa:aaaaa/r/n/r/n%s",URL,strlen(conf),Content,conf);
send(black_sock, request,sizeof(request),0);
recv(black_sock,msg,sizeof(msg),0);
{
printf("/n%s",msg);
}
if(strstr(msg,"network_ddns") != NULL)
{
printf("configure success/n");
close(black_sock);
return (1);
}

return (-1);
}
这是根据我写得cgi页面去修改cgi页面中的ip地址,这个我就不详细的解说了,您有兴趣自己看看吧,这段代码我已经测试过了绝对可用,是一段c创建socket实现的http消息通信的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: