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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC++实现简单HTTP服务器

發布時間:2023/12/29 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC++实现简单HTTP服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此程序實現了瀏覽器通過IP地址和端口訪問HTTP服務器,服務器簡單做出回應,是根據TCP服務器程序改編的,用VC++6.0編譯后,使用Google瀏覽器訪問,能達到預期效果。由于HTTP協議是由TCP協議而來,此程序就是用TCP程序作了簡單改變,缺少眾多請求處理過程。

#include<stdio.h> #include<winsock2.h> #pragma comment(lib,"WS2_32") int main() {WSADATA swadata;WORD sockVersion=MAKEWORD(2,0);//winsock的版本2.0WSAStartup(sockVersion,&swadata);//加載WInsock庫,swadata返回庫的信息//創建套接字SOCKET s=::socket(AF_INET,SOCK_STREAM,0);if(s==-1){printf("Creat scoket is failed!\n");::WSACleanup();system("pause");return 0;}//填充socaddr_in結構sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(8866);//1024--65535的端口號sin.sin_addr.S_un.S_addr=INADDR_ANY;//綁定這個套接字到本地地址if(::bind(s,(SOCKADDR*)&sin,sizeof(sin))==SOCKET_ERROR){printf("bind is failed!\n");::WSACleanup();system("pause");return 0;}//監聽模式if(::listen(s,2)==SOCKET_ERROR){printf("listen is failed!\n");::WSACleanup();system("pause");return 0;}printf("正在監聽....\n");//循環接受連接請求sockaddr_in addrlink;int Len=sizeof(addrlink);char anser[]="HTTP/1.1 200 OK\r\n\r\n<html><head><title></title></head><body>yours</body></html>\r\n";char buf[1024];SOCKET client;while(1){client=::accept(s,(SOCKADDR*)&addrlink,&Len);if(client==INVALID_SOCKET){printf("accept is failed!");continue;}int n;while((n=::recv(client,buf,1024,0))==0);buf[n]='\0';printf("客戶:(%s)",inet_ntoa(addrlink.sin_addr));printf("\n%s\n",buf);::send(client,anser,strlen(anser),0); }::closesocket(client);::closesocket(s);::WSACleanup();return 0;}




總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。