当前位置: 首页 > news >正文

云南网站开发网络公司wordpress数据都被存在哪里

云南网站开发网络公司,wordpress数据都被存在哪里,产品设计是什么,千锋教育培训机构就业率第一步#xff1a;新建项目 1、打开VS点击创建新项目 2、选择空项目并点下一步#xff08;切记不能选错项目类型#xff09; 3、填写项目名称和路径#xff0c;点击创建即可 新建好后项目是这样的比较干净 4、右击源文件#xff0c;点击添加#xff0c;新建http.cpp文件…第一步新建项目 1、打开VS点击创建新项目 2、选择空项目并点下一步切记不能选错项目类型 3、填写项目名称和路径点击创建即可 新建好后项目是这样的比较干净  4、右击源文件点击添加新建http.cpp文件 第二步前期准备 在http.cpp最上面引入依赖并撰写main方法打印错误日志的方法 #includestdio.h #includestring.h #includeWinSock2.h #includesys/types.h #includesys/stat.h #pragma comment(lib,WS2_32.lib) #define PRINTF(str) printf([%s - %d]#str%s,__func__,__LINE__,str);//打印错误日志 void error_die(const char* str) {perror(str);exit(1);}int main(void) {return 0; } 第三步网络初始化 初始化可以分为五步1、网络通讯初始化2、创建套接字3、绑定端口4、绑定套接字5、创建监听队列 代码实现如下 int startup(unsigned short *port) {//1、网络通讯初始化WSADATA data;int res WSAStartup(MAKEWORD(1,1), data);if (res) {error_die(init fail);}//2、创建套接字int server_socket socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);if (server_socket -1) {error_die(sock create fail);}//3、绑定端口int opt 1;res setsockopt(server_socket,SOL_SOCKET,SO_REUSEADDR,(const char*) opt, sizeof(opt));if (res) {error_die(port bing fail);}//4、绑定套接字struct sockaddr_in server_addr;memset(server_addr,0,sizeof(server_addr));server_addr.sin_family AF_INET;server_addr.sin_port htons(*port);server_addr.sin_addr.s_addr htonl(INADDR_ANY);res bind(server_socket,(struct sockaddr*) server_addr, sizeof(server_addr));if (res0) {error_die(sock bing fail);}//5、创建监听队列int nameLen sizeof(server_addr);if (*port 0) {res getsockname(server_socket, (struct sockaddr*)server_addr,nameLen);if (res) {error_die(dynamic sock create fail);}*port server_addr.sin_port;}res listen(server_socket, 5);if (res 0) {error_die(listen queque create fail);}return server_socket;};main方法修改如下: int main(void) {//1、初始化unsigned short port 8000;int server_sock startup(port);printf(http have benn started ,listening [%d] port...,port);return 0; } 第四步处理用户请求 1、报文背景知识 浏览器发起新的访问时会向服务器端发送一个请求报文。例如在浏览器地址输入 127.0.0.1:8000 回车后服务器端收到的完整报文如下 GET / HTTP/1.1\n Host: 127.0.0.1:8000\n Connection: keep-alive\n Cache-Control: max-age0\n Upgrade-Insecure-Requests: 1\n User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36\n Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.9\n Sec-Fetch-Site: none\n Sec-Fetch-Mode: navigate\n Sec-Fetch-User: ?1\n Sec-Fetch-Dest: document\n Accept-Encoding: gzip, deflate, br\n Accept-Language: zh-CN,zh;q0.9\n \n 请求报文由4四个部分组成请求行、请求头部行、空行、请求数据。具体格式如下 2、具体处理 具体处理代码如下 //从指定的客户端套接字读取一行数据保持到buff中返回实际读取到了字节数 int get_line(int sock, char* buff, int size) {char c 0;int i 0;while (i size - 1 c ! \n) {int n recv(sock, c, 1, 0);if (n 0) {if (c \r) {n recv(sock, c, 1, MSG_PEEK);if (n 0 c \n) {recv(sock, c, 1, 0);}else {c \n;}}buff[i] c;}else {c \n;}}buff[i] 0;return 0; }//向指定套接字发送一个未支持提示还没有实现的错误页面 void unimplement(int client) {char buf[1024];sprintf(buf, HTTP/1.0 501 Method Not Implemented\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, SERVER_STRING);send(client, buf, strlen(buf), 0);sprintf(buf, Content-Type: text/html\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, \r\n);send(client, buf, strlen(buf), 0);sprintf(buf, HTMLHEADTITLEMethod Not Implemented\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, /TITLE/HEAD\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, BODYPHTTP request method not supported.\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, /BODY/HTML\r\n);send(client, buf, strlen(buf), 0);}//向指定套接字发送一个未支持提示还没有实现的错误页面 void not_found(int client) {char buf[1024];sprintf(buf, HTTP/1.0 404 NOT FOUND\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, SERVER_STRING);send(client, buf, strlen(buf), 0);sprintf(buf, Content-Type: text/html\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, \r\n);send(client, buf, strlen(buf), 0);sprintf(buf, HTMLTITLENot Found/TITLE\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, BODYPThe server could not fulfill\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, your request because the resource specified\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, is unavailable or nonexistent.\r\n);send(client, buf, strlen(buf), 0);sprintf(buf, /BODY/HTML\r\n);send(client, buf, strlen(buf), 0);}//发送响应的头信息 void headers(int client) {char buff[1024];strcpy(buff, HTTP/1.0 200 OK\r\n);send(client, buff, strlen(buff), 0);strcpy(buff, Server:MyHttpd/0.1\r\n);send(client, buff, strlen(buff), 0);strcpy(buff, Content-type:text/html\n);send(client, buff, strlen(buff), 0);strcpy(buff, \r\n);send(client, buff, strlen(buff), 0);}//发送文件 void cat(int client,FILE* resource) {char buff[4096];int count 0;while (1) {int ret fread(buff, sizeof(char), sizeof(buff), resource);if (ret 0) {break;}send(client, buff, ret, 0);count ret;}printf(total send [%d] to client\n,count); }void server_file(int client,const char* fileName) {char numchars 1;char buff[1024];while (numchars 0 strcmp(buff, /n)) {numchars get_line(client, buff, sizeof(buff));PRINTF(buff);}FILE* resource fopen(fileName,r);if (resourceNULL) {not_found(client);}else {//发送头信息headers(client);//发送文件cat(client, resource);printf(file send success);}fclose(resource);}DWORD WINAPI accept_request(LPVOID arg) {char buff[1024];int client (SOCKET)arg;//1、获取第一行int numchars get_line(client, buff,sizeof(buff));PRINTF(buff);char method[255];int j 0 ,i 0;while (!isspace(buff[j])i sizeof(method)-1) {method[i] buff[j];}method[i] 0;PRINTF(method);//2、检查请求方法是否支持if (stricmp(method,GET) stricmp(method, POST)) {//向浏览器返回错误提示页面unimplement(client);return 0;}//3、解析资源路径char url[255];i 0;while (isspace(buff[j]) j sizeof(buff)) {j;}while (!isspace(buff[j]) sizeof(url)-1 j sizeof(buff)) {url[i] buff[j];}url[i] 0;PRINTF(url);char path[512] ;sprintf(path, htdocs%s, url);if (path[strlen(path)-1]/) {strcat(path, index.html);}PRINTF(path);struct stat status ;if (stat(path,status)-1) {//把请求包里的东西读完while (numchars0strcmp(buff,/n)) {numchars get_line(client, buff, sizeof(buff));}PRINTF(buff);not_found(client);}else {if ((status.st_mode S_IFMT)S_IFDIR) {strcat(path, index.html);}server_file(client,path);}closesocket(client);return 0; }github地址 https://github.com/1756336885/miniWeb.git gitee地址 miniWeb: 迷你版的web,用C撰写后期会添加数据库中间件相关的操作 参考文章 2-创建项目_哔哩哔哩_bilibili C语言手写HTTPD网站服务器_126775241csdn-CSDN博客
http://www.hkea.cn/news/14484355/

相关文章:

  • 建设手机版网站需要主机多少空间企业二级网站怎么做
  • 郑州区块链数字钱包网站开发周期榆林做网站的公司
  • 推广之家seo求职
  • 网站建设的职责提高网站流量的软文案例
  • ps可以做网站吗产品运营推广方案
  • 福州的网站建设手机商城网站模板
  • 网站右侧浮动导航网站双语版的怎么制作
  • 湛江市企业网站建设哪家好有哪些网站可以免费
  • 枞阳网站建设哪里有整站优化
  • 什么网站专做衣服自己给别人做网站挣钱吗
  • 建设一个网站需要条件西安做北郊做网站
  • 怎样建设自己网站的后台asp网站模板安装教程
  • 微信做淘宝客 网站打不开了网盘搜索引擎
  • 用ps软件做ppt模板下载网站有哪些内容免费建站网站一级在线看
  • 上传网站安装教程有什么网站可以做运动
  • wordpress用户上传图片石家庄优化哪家好
  • 怎样建立个人网站?logo在线设计软件
  • 公路局网站建设方案wordpress thegem
  • asp网站制作北京网站建设公司 网络服务
  • 教育云平台网站建设网站建设有哪些方面
  • 群晖 建站 Wordpress微信公众号分享wordpress
  • 广州网站设计服务一个网站开发成本
  • 银川哪里做网站h5制作开发价目表
  • 网站建设课程 谷建网站怎么做电子合同
  • 济南网站制作公司湖南正规网络营销哪家便宜
  • 上海网站制作哪家奿护肤品网站建设方案
  • 黄页88网站推广方案网络工程技术就业前景
  • 电影网站建设教程下载江西机场建设集团网站
  • 电子商务网页与网站设计猪八戒兼职网官网
  • 网站建设需要了解哪些方面网站开发运行环境论文