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

企业网站html源代码微信公众号模板哪里找

企业网站html源代码,微信公众号模板哪里找,门户网站搭建软件,wordpress建商城目录 一、关于网络的部分概念1 URL(网址)及URL的解析2 URL的解析3 域名及域名解析3 IP及子网掩码4 什么是Web服务器5 HTTP的基本概念6 Socket库概念7 协议栈8 Socket库收发数据基本步骤 二、基于TCP的网络应用程序三、基于UDP的网络应用程序 一、关于网络的部分概念 1 URL(网址… 目录 一、关于网络的部分概念1 URL(网址)及URL的解析2 URL的解析3 域名及域名解析3 IP及子网掩码4 什么是Web服务器5 HTTP的基本概念6 Socket库概念7 协议栈8 Socket库收发数据基本步骤 二、基于TCP的网络应用程序三、基于UDP的网络应用程序 一、关于网络的部分概念 1 URL(网址)及URL的解析 网址学名叫URLUniform Resource Locator统一资源定位符。URL的各种形式如下图所示。  尽管URL有各种不同的写法但他们有一个共同点就是URL开头的文字即“http:”“ftp:”“file:”mailto:这部分文字标识浏览器应当使用的访问方法。比如当访问Web服务器时应当使用HTTP协议而访问FTP服务器时应当使用FTP协议。因此我们可以把这部分理解为访问时使用的协议类型。 2 URL的解析 浏览器先要解析URL,从而生成发送给Web服务器的请求消息。以下我们以访问Web服务器为例进行讲解假定URL为http://www.lab.glasscom.com/dir1/file1.html 经过浏览器解析之后可以看到拆分结果为Web服务器名称www.lab.glasscom.com以及文件的路径名/dir1/file1.html 3 域名及域名解析 一般来说域名包括顶级域名、一级域名、子域名组成其格式为www.A.B.C.com句点划分了域名的层次结构越靠右的域如com的层次越高。假设DNS服务器和域一一对应实际上比较复杂则上层域的DNS服务器保存着下级服务器的信息因此可以一层一层顺藤摸瓜地查找下去。  对地址为 http://www.lab.glasscom.com/dir1/file1.html 的URL来说其中的www.lab.glasscom.com就是域名。  当我们在浏览器输入一个域名后需要进行域名解析也就是通过操作系统Socket库中的解析器向最近的DNS服务器查询域名对应的IP地址获得此地址后我们才能同该服务器进行通信。 3 IP及子网掩码 互联网和公司内部的局域网都是基于TCP/IP的思路来设计的也就是由一些小的子网通过路由器连接起来组成一个大的网络。这里的子网可以理解为用集线器连接起来的几台计算机我们将它看作一个单位成为子网。将子网通过路由器连接起来就形成了一个网络。在网络中所有的设备都会被分配一个地址。这个地址就相当于现实中某条路上的“XX号XX室”。其中“号”对应的号码是分配给整个子网的而“室”对应的号码室分配给子网中的计算机的这就是网络中的地址。“号”对应的号码称为网络号“室”对应的号码称为主机号这个地址的整体称为IP地址。  准确的说IP地址是连接在Internet中的每一台主机或 路由器的全球唯一的标识符。实际的IP地址是一串32比特的数字按照8比特为一组分成4组分别用十进制标识然后再用原点隔开。但是这样我们就无法区分哪些是网络号哪些是主机号。为此我们附加了子网掩码。  子网掩码为1的部分表示网络号子网掩码为0的部分表示主机号如下图所示。 4 什么是Web服务器 Web服务器一般指的是“网站服务器”也称为WWW(Word Wide Web)服务器是某种驻留在因特网上的计算机程序可以向请求终端提供服务主要功能时存储、处理和传递网页给“客户”传递内容一般是HTML文档、图像、样式表或脚本等也可以放置网站文件以供浏览或下载。严格来说Web服务器只负责处理Http协议请求发送静态页面的内容。 5 HTTP的基本概念 在浏览器解析完URL之后就会使用HTTP协议访问Web服务器。那么HTTP协议到底是什么  HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤其基本思路非常简单。首先客户端会向服务器发送请求消息。请求消息中包含的内容是“对什么”和“进行怎样的操作”两个部分。其中相当于“对什么”的部分称为 URI。一般来说URI 的内容是一个存放网页数据的文件名或者是一个 CGI 程序的文件名例如“/dir1/file1.html” “/dir1/program1.cgi”等。不过URI 不仅限于此也可以直接使用“http:”开头的 URL 来作为 URI。换句话说就是这里可以写各种访问目标而这些访问目标统称为 URI。  相当于接下来“进行怎样的操作”的部分称为方法。方法表示需要让Web 服务器完成怎样的工作其中典型的例子包括读取 URI 表示的数据、将客户端输入的数据发送给 URI 表示的程序等。下表列举了主要的方法通过这张表大家应该能够理解通过方法可以执行怎样的操作。  HTTP 消息中还有一些用来表示附加信息的头字段。客户端向 Web 服务器发送数据时会先发送头字段然后再发送数据。收到请求消息之后Web 服务器会对其中的内容进行解析通过 URI和方法来判断“对什么”“进行怎样的操作”并根据这些要求来完成自己的工作然后将结果存放在响应消息中。在响应消息的开头有一个状态码它用来表示操作的执行结果是成功还是发生了错误。当我们访问 Web 服务器时遇到找不到的文件就会显示出 404 Not Found 的错误信息其实这就是状态码。状态码后面就是头字段和网页数据。响应消息会被发送回客户端客户端收到之后浏览器会从消息中读出所需的数据并显示在屏幕上。到这里HTTP 的整个工作就完成了。 6 Socket库概念 Socket库是操作系统提供的一个库包含的程序组件可以让其他的程序调用操作系统的网络功能。如域名解析器就是库中的一个组件。  当浏览器和 Web 服务器通信时、通过 DNS 服务器查询 IP 地址时都需要使用 Socket 库中的程序组件。  使用 Socket 库来收发数据的操作过程如下图所示 。简单来说收发数据的两台计算机之间连接了一条数据通道数据沿着这条通道流动最终到达目的地。我们可以把数据通道想象成一条管道将数据从一端送入管道数据就会到达管道的另一端然后被取出。数据可以从任何一端被送入管道数据的流动是双向的。不过这并不是说现实中真的有这么一条管道只是为了帮助大家理解数据收发操作的全貌。 7 协议栈 协议栈是指操作系统中的网络控制软件协议栈的内部结构为  图中最上面的部分是网络应用程序也就是浏览器、电子邮件客户端、Web 服务器、电子邮件服务器等程序它们会将收发数据等工作委派给下层的部分来完成。当然除了浏览器之外其他应用程序在网络上收发数据的操作也都是类似上面这样的也就是说尽管不同的应用程序收发的数据内容不同但收发数据的操作是共通的。  应用程序的下面是 Socket 库其中包括解析器解析器用来向 DNS服务器发出查询。再下面就是操作系统内部了其中包括协议栈。协议栈的上半部分有两块分别是负责用 TCP 协议收发数据的部分和负责用 UDP 协议收发数据的部分它们会接受应用程序的委托执行收发数据的操作。  TCP 和UDP是面向传输层的两种协议像浏览器、邮件等一般的应用程序都是使用 TCP 收发数据的而像 DNS 查询等收发较短的控制数据的时候则使用 UDP。  总的来说上层向下层发出指令下层执行上层指令应用程序调用Socket库Socket库调用了协议栈协议栈又调用了网卡驱动程序最终将消息发送出去。 8 Socket库收发数据基本步骤 利用socket收发数据的操作分为若干个阶段可以大致总结为以下 4 个。   1.创建套接字创建套接字阶段   2.将管道连接到服务器端的套接字上连接阶段   3.收发数据通信阶段   4.断开管道并删除套接字断开阶段 客户端和服务器之间收发数据操作的情形 二、基于TCP的网络应用程序 基于TCP(面向连接)的socket编程的服务器端程序流程如下 创建套接字socket将套接字绑定到一个本地地址和端口上(bind)将套接字设为监听模式准备接受客户请求(listen)等待客户请求到来当请求到来时接受连接请求返回一个新的对应于此次连接的套接字(accept)。用返回的套接字和客户端进行通信(send/recv).返回等待另一客户请求。关闭套接字 基于TCP面向连接的socket编程的客户端程序流程如下 创建套接字socket.向服务器发出连接请求(connect).和服务器进行通信send/recv.关闭套接字。 服务器端的实现为 // TCPSrv.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 // #include Winsock2.h #include iostream #include ws2tcpip.h//#define _WINSOCK_DEPRECATED_NO_WARNINGS #pragma comment(lib, Ws2_32.lib)int main() {WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD(2, 2);err WSAStartup(wVersionRequested, wsaData);if (err ! 0) {/* Tell the user that we could not find a usable *//* WinSock DLL. */return EXIT_SUCCESS;}/* Confirm that the WinSock DLL supports 2.2.*//* Note that if the DLL supports versions greater *//* than 2.2 in addition to 2.2, it will still return *//* 2.2 in wVersion since that is the version we *//* requested. */if (LOBYTE(wsaData.wVersion) ! 2 ||HIBYTE(wsaData.wVersion) ! 2) {/* Tell the user that we could not find a usable *//* WinSock DLL. */WSACleanup();return EXIT_SUCCESS;}//第一步创建套接字SOCKET sockSrv socket(AF_INET, SOCK_STREAM, 0);//第二步将套接字绑定到本地地址和端口上SOCKADDR_IN addSrv;//使用网络字节序可以将IP地址指定为INADDR_ANY允许套接字向任何分配给//本地机器的IP地址发送或接受数据。//如果我们想让套接字使用多个IP中的一个地址就必须指定实际地址这需要用到//inet_addr函数来实现addSrv.sin_addr.S_un.S_addr htonl(INADDR_ANY);addSrv.sin_family AF_INET;addSrv.sin_port htons(6000); bind(sockSrv, (SOCKADDR*)addSrv, sizeof(SOCKADDR));//绑定套接字//第三步将套接字设为监听模式准备接受客户请求,//第二个参数是指等待连接队列的最大长度比如说此时等待连接队列是5那么下一个连接请求会被拒绝listen(sockSrv, 5);SOCKADDR_IN addrClient;int len sizeof(SOCKADDR);while (true){//第四步等待客户连接到来//accept 函数提取套接字 s 上挂起连接队列上的第一个连接。然后它会创建一个新的套接字并将其句柄并将其返回。//新创建的套接字是将处理实际连接的套接字;它具有与套接字相同的属性包括使用 WSAAsyncSelect 或 WSAEventSelect 函数注册的异步事件。SOCKET sockConn accept(sockSrv, (SOCKADDR*)addrClient, len);char sendBuf[100];sprintf_s(sendBuf, Welcome %s to http://www.sunxin.org, inet_ntoa(addrClient.sin_addr));//第五步用返回的套接字和客户端通信//发送数据为了让接收端在接受数据以后可以在该数据字符串之后增加一个“\0”结尾标志send(sockConn, sendBuf, strlen(sendBuf) 1, 0);char recvBuf[100];//接收数据recv(sockConn, recvBuf, 100, 0);//打印接受到的数据printf(%s\n, recvBuf);//第六步关闭套接字此时程序进入到下一循环closesocket(sockConn);} }客户端的实现如下 // TCPClient.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 //#include Winsock2.h #include iostream #include ws2tcpip.h#pragma comment(lib, Ws2_32.lib)int main() {WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD(2, 2);//加载套接字库err WSAStartup(wVersionRequested, wsaData);if (err ! 0) {return EXIT_SUCCESS;}if (LOBYTE(wsaData.wVersion) ! 2 ||HIBYTE(wsaData.wVersion) ! 2) {/* Tell the user that we could not find a usable *//* WinSock DLL. */WSACleanup();return EXIT_SUCCESS;}//第一步创建套接字SOCKET sockClient socket(AF_INET, SOCK_STREAM, 0);//第二部向服务器发送连接请求SOCKADDR_IN addrSrv;//地址127.0.0.1 是本地回路地址。主机环回是指地址为 127.0.0.1 的任何数据包//都不应该离开计算机主机发送它——而不是被发送到本地网络或互联网它只是被自己“环回”//并且发送数据包的计算机成为接收者。addrSrv.sin_addr.S_un.S_addr inet_addr(127.0.0.1);addrSrv.sin_family AF_INET;addrSrv.sin_port htons(6000);connect(sockClient, (SOCKADDR*)addrSrv, sizeof(SOCKADDR));//第三步和服务器进行通信//接受数据char recvBuf[100];recv(sockClient, recvBuf, 100, 0);printf(%s\n, recvBuf);//发送数据send(sockClient, This is lisi, strlen(This is lisi) 1, 0);//第四步关闭套接字closesocket(sockClient);//释放资源WSACleanup();getchar(); }三、基于UDP的网络应用程序 基于UDP(面向无连接)的socket编程的服务器端程序流程如下 创建套接字socket将套接字绑定到一个本地地址和端口上(bind)等待接受数据(recvfrom)关闭套接字 基于UDP(面向无连接)的socket编程的客户端程序流程如下 创建套接字socket.向服务器发送数据(sendto).关闭套接字。 注意在基于UDP的套接字编程时利用的是sendto和recvfrom两个函数而基于TCP的套接字编程时发送和接受分别使用send和recv函数。   服务器端的程序实现如下 // UDPSrv.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 //#include Winsock2.h #include iostream #include ws2tcpip.h#pragma comment(lib, Ws2_32.lib)int main() {WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD(2, 2);err WSAStartup(wVersionRequested, wsaData);if (err ! 0) {return EXIT_SUCCESS;}if (LOBYTE(wsaData.wVersion) ! 2 ||HIBYTE(wsaData.wVersion) ! 2) {/* Tell the user that we could not find a usable *//* WinSock DLL. */WSACleanup();return EXIT_SUCCESS;}//第一步创建套接字SOCKET sockSrv socket(AF_INET, SOCK_DGRAM, 0);//第二步将套接字绑定到一个本地地址和端口上SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr htonl(INADDR_ANY);addrSrv.sin_family AF_INET;addrSrv.sin_port htons(6000);bind(sockSrv, (SOCKADDR*)addrSrv, sizeof(SOCKADDR));//第三步等待接收数据SOCKADDR_IN addrClient;int len sizeof(SOCKADDR);char recvBuf[100];recvfrom(sockSrv, recvBuf, 100, 0, (SOCKADDR*)addrClient, len);printf(%s\n, recvBuf);//第四步关闭套接字closesocket(sockSrv);WSACleanup();getchar(); }客户端的程序实现如下 // UDPClient.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。 //#include Winsock2.h #include iostream #include ws2tcpip.h#pragma comment(lib, Ws2_32.lib)int main() {WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD(2, 2);err WSAStartup(wVersionRequested, wsaData);if (err ! 0) {return EXIT_SUCCESS;}if (LOBYTE(wsaData.wVersion) ! 2 ||HIBYTE(wsaData.wVersion) ! 2) {/* Tell the user that we could not find a usable *//* WinSock DLL. */WSACleanup();return EXIT_SUCCESS;}//第一步创建套接字SOCKET sockClient socket(AF_INET, SOCK_DGRAM, 0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr inet_addr(127.0.0.1);addrSrv.sin_family AF_INET;addrSrv.sin_port htons(6000);//第二步向服务器发送数据(sendto)sendto(sockClient, Hell0, strlen(Hello) 1, 0, (SOCKADDR*)addrSrv, sizeof(SOCKADDR));//第三步关闭套接字closesocket(sockClient);WSACleanup();getchar(); }
http://www.tj-hxxt.cn/news/226760.html

相关文章:

  • 比较好的设计欣赏网站ipv6域名解析 做网站
  • 做铝板的网站核心关键词和长尾关键词
  • 找工作哪个网站好智联招聘网站有服务器怎么备案
  • 网站开发组织架构图开发平台搭建
  • 站酷网官网下载网站设计的评估
  • 北京网站设计培训机构网站批量查询工具
  • 无为县住房建设局网站wordpress版微信小程序
  • 昆明建设局网站号码cm域名网站
  • 网站模板编辑微信公众平台小程序二维码怎么生成
  • 网站设计要学哪些大数据比较好的培训机构
  • 柳州网站建设价格dx网站是哪家公司做的
  • 手机网站规划福田庆三整过的明星
  • 网站代码框架做网站设计的论文中摘要怎么写
  • 宁国网站开发网站建设公司广告标题语
  • 毕业设计做网站老师会问什么网站开发人才需求
  • 国外购物网站建设黄骅市医院
  • 网站 规划乌市正规网站建设
  • 做博客网站怎么赚钱吗网页设计代码大全div
  • 建筑建设行业网站无锡网站建设报价明细表
  • 自己做网站投放有流量么代理公司注册哪家好
  • 揭阳网站建设antnw谷歌代运营
  • 外包公司做的网站怎么改密码wordpress怎么修改登录界面
  • 济宁网站建设找哪家网站品牌词优化怎么做
  • 空间放两个网站大作设计网站官网下载
  • 织梦网站怎样做seo华为开发者选项在哪里打开
  • 网站制作留钱建设服装网站的亮点
  • 如何在工商局网站做身份确认网站架构原理
  • 苏州品牌网站设计开发自己做博客网站和百家号的区别
  • 建网站需要什么手续鹰枭乱wordpress
  • 网站开发哪种框架旅游公司网站难做吗