日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最简单的http服务器实现

發(fā)布時間:2025/5/22 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最简单的http服务器实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)在有很多功能強大的http服務(wù)器,APACHE,IIS我們應(yīng)該都很熟悉

其實眾多的http服務(wù)器都有個最基本的工作流程:

1.初始化工作環(huán)境,在固定端口(80)偵聽外部請求

2.接收請求

3.建立連接

4.發(fā)送響應(yīng)頭部

5.發(fā)送響應(yīng)內(nèi)容

6.中斷連接

下面是個最簡單的http服務(wù)器的例子,用winsock實現(xiàn)

為什么是最簡單的呢,因為它接收到請求后,發(fā)送的響應(yīng)頭部和響應(yīng)內(nèi)容都是直接指定的

不能區(qū)別不同的get,post,head 請求。

#include "winsock.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#pragma comment (lib,"wsock32")///所需的庫文件

void main()
{
?/初始化winsock環(huán)境
?WSADATA wsadata;
?WORD wVersion=MAKEWORD(2,0);/winsock 2.0
?if(WSAStartup(wVersion,&wsadata)!=0)
?{
??printf("initalize failed!\n");
??WSACleanup();
??exit(1);
?}


?
?int sock,csock,length;//sock是服務(wù)器端偵聽套接字,csock是客戶端連接套接字
?length=sizeof(struct sockaddr);


?struct sockaddr_in server_ipaddr,client_ipaddr;//用來獲得服務(wù)器和客戶端的地址信息
?memset(&server_ipaddr,0,length);
?server_ipaddr.sin_family=AF_INET;
?server_ipaddr.sin_port=htons(80);
?server_ipaddr.sin_addr.s_addr=inet_addr("211.81.55.200");


?char buff[4096];int nbuff;

?sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
///綁定
?if(bind(sock,(struct sockaddr *)&server_ipaddr,length)==SOCKET_ERROR)
?{
??printf("Bind error\n");
??WSACleanup();
??exit(1);
?}
偵聽
?if(listen(sock,5)==SOCKET_ERROR)
?{
??printf("Listen error\n");
??WSACleanup();
??exit(1);
?}

?/
?char headers[1000];//保存頭部
?/頭部格式
?char hdrFmt[]=
??"HTTP/1.0 200 OK\r\n"
??"Server: MySocket Server\r\n"
??"Date: %s\r\n"
??"Content-Type: text/html\r\n"
??"Accept-Ranges: bytes\r\n"
??"Content-Length: %d\r\n\r\n";
?char * strGmtNow="08/15/14 22:53:00 GMT";///隨便指定了一個時間
?wsprintf(headers, hdrFmt, (const char*) strGmtNow, strlen(CustomHtml));
?//要傳送的網(wǎng)頁內(nèi)容
?char CustomHtml[]=
??"<html>\r\n"
??"<head>\r\n"
??"<title></title>\r\n"
??"</head>\r\n"
??"<body>\r\n"
??"<p align=\"center\">歡迎訪問我的主頁</p>\r\n"
??"<h3 align=\"center\"><a href=\"Default.htm\">快樂天地</a></h3>\r\n"
??"<p>結(jié)束</p>\r\n"
??"<p> </p>\r\n"
??"</body></html>\r\n\r\n";
?

?

?//
?while(1)
?{
??//偵聽到連接后,產(chǎn)生新的套接字
??///用來和客戶端傳遞消息
??csock=accept(sock,(struct sockaddr *)&client_ipaddr,&length);
??if(csock==SOCKET_ERROR)
??{
???printf("Listen error\n");
???WSACleanup();
???exit(1);
??}
??nbuff=recv(csock,buff,4095,0);
???buff[nbuff]='\0';
??printf("%s",buff);
?/發(fā)送響應(yīng)頭部
??send(csock,headers,strlen(headers),0);
?/發(fā)送內(nèi)容?
??send(csock,CustomHtml,strlen(CustomHtml),0);
?/關(guān)閉本次連接
??closesocket(csock);

?


?}

?

}

轉(zhuǎn)載于:https://www.cnblogs.com/MaxWoods/archive/2010/02/02/1661445.html

總結(jié)

以上是生活随笔為你收集整理的最简单的http服务器实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂在线中文网 | 国产精品成人免费一区二区视频 | 久久久精品免费看 | 都市激情麻豆 | 日韩成人综合 | 国产麻豆交换夫妇 | 黄色裸体片 | 自拍偷拍欧美日韩 | 黄色大片在线播放 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 最新色视频 | 色老板最新地址 | 免费一级特黄毛大片 | 一区二区日韩精品 | 成人在线国产精品 | 国产成人观看 | 人妻无码一区二区三区久久99 | 中文字幕日韩欧美一区二区 | 少妇激情偷人爽爽91嫩草 | 欧美日一区二区三区 | 夜福利视频 | 成人91在线观看 | 国产3p在线播放 | 一区二区三区色 | 日本三级午夜理伦三级三 | 久久波多野 | 久久婷婷婷 | 碰在线视频| 色哟哟免费观看 | 国产午夜一区 | 中文字幕亚洲在线 | 免费在线观看你懂的 | www.欧美| 蜜桃精品在线观看 | 久久精品人妻一区二区 | 91亚洲在线 | 亚洲免费视频一区二区 | 老司机在线免费视频 | 国产又大又硬又粗 | youjizz.com国产| 深夜福利网站在线观看 | 色乱码一区二区三区熟女 | 激情综合区 | 色福利网 | 久久精品久 | 毛片av在线播放 | 久久成人午夜 | 国产在线视频资源 | 黄色a毛片| 精品一区二区三区久久久 | 国产97在线视频 | 欧美日韩理论 | 欧美一区二区三区色 | 狠狠鲁影院 | 免费观看一级黄色片 | 青娱乐欧美 | 国产精品成人一区 | xxx在线播放 | 亚洲伦理视频 | 日本精品视频一区二区 | 少妇色| 男人激烈吮乳吃奶爽文 | 男插女在线观看 | 五月开心激情网 | 无码人妻精品一区二区三应用大全 | 欧美黑人性受xxxx精品 | 亚洲成人网av | 欧美一级xxx | 999精品在线观看 | 欧美一区二区三区成人久久片 | 日韩美女免费视频 | wwwxxxx国产 | 成年人性视频 | 777米奇影视第四色 五月丁香久久婷婷 | 亚洲成人网在线播放 | 欧美熟妇激情一区二区三区 | 污网在线观看 | 天天干天天做 | 成人app在线 | 午夜激情一区二区 | 女上男下动态图 | 99精品视频一区二区 | 天堂中文资源在线 | 国产制服丝袜在线 | 无码人妻精品一区二区三区温州 | 欧美无极品 | 久热精品视频在线观看 | 国产日产欧美一区二区三区 | 中文字幕日韩高清 | 久久激情视频 | 国产精品扒开腿做爽爽爽男男 | 国产精品久久久久久久久久 | 久久中文视频 | 在线免费观看视频你懂的 | proumb性欧美在线观看 | 好色999| 日本高清视频一区二区三区 | 爱情岛论坛成人av | 久久国内精品视频 |