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

网站综合开发怎么做dz网站如何搬家

网站综合开发怎么做,dz网站如何搬家,wordpress 修改文章,文明网站建设总结我会在近期尽快更新好之前写的博客#xff0c;会添加新的知识点和注意问题#xff0c;排版和内容都会较之前有很大的改观#xff0c;感谢大家一直的支持#xff01; 1、 客户端/服务器架构 客户端/服务器架构也称主从式架构#xff0c;简称C/S架构#xff0c;它是一种网络…   我会在近期尽快更新好之前写的博客会添加新的知识点和注意问题排版和内容都会较之前有很大的改观感谢大家一直的支持 1、 客户端/服务器架构   客户端/服务器架构也称主从式架构简称C/S架构它是一种网络结构把客户端Client(通常是一个采用图形界面的程序)与服务器server区分开来在C/S架构中服务器是一系列的硬件或软件客户端是提交服务请求的用户客户端提供用户请求接口服务端响应请求进行对应的处理并返回给客户端。客户端/服务器架构既可以应用于计算机硬件也可以应用于软件。 1.1、 硬件客户端/服务器架构   典型的硬件客户端/服务器架构就是打印机在企业中员工通过局域网将个人电脑连接到打印机上作为客户端向打印机发送打印请求打印机作为服务端完成响应处理相应的请求。 1.2、 软件客户端/服务器架构   软件服务器也是运行在硬件之上的典型的软件服务器是Web服务器。在一台或多台电脑上搭建Web服务器以提供用户访问所需的Web页面和应用程序Web服务器一旦启动都将可能永远运行除非受到一些外力驱使才会停止如人为关闭服务器硬件故障等。它的工作就是接收客户端的请求并响应请求给客户端返回相应的Web页面然后等待下一个客户端的请求。 2、 套接字   套接字是网络编程中的一个基本组件如果想要服务器能够响应客户端发来的请求首先要建立一个通信端点使服务器能够监听服务当通信端点建立后就会进入无限循环的等待请求状态当接收到客户端的请求就会响应该请求。   套接字就是两个程序之间的信息通道可以理解为上面提到的“通信端点”的概念。在通信开始之前网络应用程序必须创建套接字。套接字是网络通信过程中端点的抽象表示包含进行网络通信必须的五种信息:连接使用的协议本地主机的IP地址本地进程的协议端口号远程主机的IP地址远程进程的协议端口号。   套接字起源于 20 世纪 70 年代它是加利福尼亚大学伯克利分校版本的 Unix的一部分,即人们所说的 BSD Unix。 因此,套接字也被人们称为“伯克利套接字”或“BSD 套接字”。套接字最初被设计用于同一台主机上多个应用程序之间的通讯这也就是所谓的进程间通讯IPC。   TCP用主机的IP地址加上主机的端口号作为TCP连接的端点这种端点就叫做套接字socket或插口。套接字用IP地址端口号表示。   套接字有两种类型,分别是基于文件的和基于网络的。   基于文件的套接字家族名字叫做“AF_UNIX”,代表地址家族address familyUNIX。在Unix和linux操作系统中熟为人知的一句话就是一切皆文件一个或多个进程运行在同一台机器上所以套接字是基于文件的它就可以通过访问底层的基础结构来实现进程之间的通信   基于网络的套接字家族名字叫做“AF_INET”代表地址家族address familyINET(因特网)。它使用IPv4进行通信因为IPv4使用32位地址相比于IPv6的128位来说计算更快更适合于局域网的通信。目前它也是使用最广泛的。   在本文中重点讲网络编程所以在后面的涉及最多的还是AF_INET。 2.1、 流式套接字SOCK_STREAM   不论使用哪种地址家族都只有两种套接字的连接方式一种是面向连接的一种是无连接的。   面向连接的套接字连接方式意味着在进程通信之前必须先建立好一个连接这种套接字就称为流式套接字。   流式套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送并按顺序接收。流式套接字之所以能够实现可靠的数据服务原因在于其使用了传输控制协议即TCPThe Transmission Control Protocol协议。在Python中创建TCP套接字就必须声明SOCK_STREAM作为套接字类型。 2.2、 数据报套接字SOCK_DGRAM   数据报套接字提供了一种无连接的服务。这也意味着使用这种连接方式不需要在进程通信前建立连接。在数据的传输过程中SOCK_DGRAM并不能保证数据传输的可靠性数据有可能在传输过程中丢失或出现数据重复且无法保证顺序地接收到数据。数据报套接字使用UDPUser Datagram Protocol协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性对于有可能出现的数据丢失情况需要在程序中做相应的处理。   虽然存在数据丢失、重复、数据无序接受等很多缺点但它也有优势所在在流式套接字中因为是面向连接并提供了可靠的数据传输服务这对于虚拟电路连接的维护需要很大的开销但数据报套接字就不需要这些额外的开销所以维护、资源占用成本更低。 3、 网络编程   Python是一个很强大的网络编程工具Python内有很多针对网络协议的库这些库对网络协议的各个层次进行抽象封装这对于程序员来说就意味着不必关心网络协议的原理只需要通过对程序的逻辑处理就可以实现网络数据的传输。 3.1、 创建套接字   在Python中创建套接字需要使用socket模块通过socket()函数创建套接字对象。 1 class socket(_socket.socket): 2 -- skip -- 3 def __init__(self, familyAF_INET, typeSOCK_STREAM, proto0, filenoNone): 4 -- skip --   从socket函数的的构造方法中可以看出可以指定地址家族和套接字的连接方式proto默认是0通常都省略。即创建套接字对象的时候   import socket   #创建TCP/IP套接字地址家族AF_INET   tcp_socket socket.socket(socket.AF_INET,socket.SOCKET_STREAM)   #创建UDP/IP套接字地址家族AF_INET   udp_socket socket.socket(socket.AF_INET,socket.SOCKET_DGRAM) 3.2、 套接字的内置方法   常见的套接字内置函数 方法 功能 st.recv() 接受TCP的消息 st.recv_into() 接受TCP的消息到指定的缓存区 st.send()   发送TCP的消息(当待发送的消息量大于缓存区剩余内存时数据会丢失) st.sendall()   完整的发送TCP消息当待发送的消息量大于缓存区剩余内存时数据不会丢失循环调用send 直到发完为止 st.recvfrom() 接收UDP的消息 st.recvfrom_into() 接收UDP的消息到指定的缓存区 st.sendto() 发送UDP的消息 st.getpeername() 连接到套接字的远程地址TCP st.getsockname() 获取当前套接字的地址 st.getsockopt() 获取指定套接字的参数 st.setsockopt() 设置指定套接字的参数 st.close() 关闭套接字 st.shutdown() 关闭连接   服务端套接字方法 方法 功能 st.bind() 将IP地址端口号绑定到套接字上 st.listen() 开启TCP监听功能 st.accept() 被动的接受TCP客户端的连接阻塞式一直等待连接直到连接到达   客户端套接字方法 方法 功能 st.connect() 主动发起TCP服务器连接 st.connect_ex() connect()的扩展版本以错误代码的形式返回问题而不是抛出异常       面向阻塞的套接字方法 方法 功能 st.setblocking() 设置套接字为阻塞模式或非阻塞模式 st.settimeout() 设置阻塞套接字的操作超时时间 st.gettimoout() 获取阻塞套接字的操作超时时间     面向文件的套接字方法 方法 功能 st.fileno() 套接字的文件描述符 st.makefile() 创建与套接字相关联的文件对象     数据属性 属性 功能 st.family 套接字家族 st.type 套接字类型 st.proto 套接字协议 3.3、 Tcp服务器和客户端的通信   上面提到过套接字对象都是通过socket.socket()函数来创建的下面模拟一个TCP服务器和客户端来实现进程间的通信。   Tcp服务端: 1 import socket2 tcp_server socket.socket(socket.AF_INET,socket.SOCK_STREAM) //创建服务器套接字3 tcp_server.bind((127.0.0.1,8000)) //将套接字与地址绑定4 tcp_server.listen(5) //建立监听连接5 print(The server has started)6 while True:7 conn,addr tcp_server.accept() //接受客户端的连接8 while True:9 try: 10 data conn.recv(1024) //会话的接收或发送 11 print(msg is,data.decode(utf-8)) //要将收到的会话数据进行解码 12 conn.send(data.title()) //会话的发送或接受 13 except Exception: 14 break 15 conn.close() //关闭连接 16 tcp_server.close() //关闭服务器套接字    在Tcp服务端先创建服务器套接字并指定类型为流式套接字SOCK_STREAM。因为服务器需要占用一个端口并等待客户端的请求所以它们必须绑定到一个本地地址。Tcp是一种面向连接的通信方式所以必须建立监听连接listen(5)的意义是允许传入连接的最大数为5个。当调用accept()函数后服务端就会进入一个等待状态默认情况下accept()处于阻塞状态也就意味着执行到此处程序会暂停直到有新的连接到达才会进行下一步的收发操作。   Tcp客户端 1 import socket2 tcp_client socket.socket(socket.AF_INET,socket.SOCK_STREAM) //创建客户端套接字3 tcp_client.connect((127.0.0.1,8000)) //连接服务器4 while True:5 msg input(Please input your message:).strip()6 if not msg:continue7 tcp_client.send(msg.encode(utf-8)) //会话接收或发送8 data tcp_client.recv(1024)9 print(reply is,data.decode(utf-8)) 10 tcp_client.close() //关闭客户端套接字   创建客户端比服务端要简单很多客户端一旦拥有了套接字就可以利用套接字的connect()方法直接创建一个服务器的连接建立好连接就可以参与到服务端的会话中当客户端的需求全部完成就会关闭套接字终止此次连接。 3.4、 Udp服务端和客户端的通信   Udp服务器不需要Tcp服务器那么多的配置因为它不是面向连接的除了等待传入的连接它基本不需要其他的操作。   Udp服务端 1 import socket2 ip_port (127.0.0.1,8000)3 udp_server socket.socket(socket.AF_INET,socket.SOCK_DGRAM) //创建服务端套接字4 udp_server.bind(ip_port) //绑定本地地址5 print(the server has started)6 while True:7 data,addr udp_server.recvfrom(1024) //关闭接收或发送8 print(data)9 udp_server.sendto(data.title(),addr) //关闭发送或接受 10 从上面代码中可以看出除了创建套接字并绑定本地地址后基本   没有其它的操作它是无连接的这也就意味着它无需为了成功通信而使一个客户端连接到一个“特定”的套接字进行转换操作服务器端仅仅是接收数据并进行回复。        Udp客户端 1 import socket 2 ip_port (127.0.0.1,8000) 3 udp_client socket.socket(socket.AF_INET,socket.SOCK_DGRAM) //创建服务端套接字 4 while True: 5 msg input().strip() 6 udp_client.sendto(msg.encode(utf-8),ip_port) //发送 7 data,addr udp_client.recvfrom(1024) //接收 8 print(data) 9 udp_client.close() //关闭套接字     Udp客户端一旦创建了套接字就可以进行会话循环中当会话结束关闭套接字。     在使用Udp进行通信的时候服务端可以同时接收多个客户端的会话请求并返回请求结果。转载于:https://www.cnblogs.com/Chen-Zhipeng/p/8472936.html
http://www.pierceye.com/news/279695/

相关文章:

  • wordpress 媒体库 cos百度网站怎样优化排名
  • 自助建站程序html样式模板
  • 公主岭网站建设筑梦网站建设
  • 昊源建设监理有限公司网站广州住房与城乡建设部网站
  • 如何免费建立自己网站wordpress媒体优化
  • 南京企业做网站网站建设的类型有几种
  • 不需要证件做网站相城区建设网站
  • 游戏推广网站如何做的全网投放广告的渠道有哪些
  • 飞数石家庄网站建设seo 关键词优化
  • 织梦新手网站建设建筑工程公司资质
  • 网站建设开什么名目外贸网站建设关键点
  • 大学生网站设计河南省建筑工程信息网
  • 安徽省住房和城乡建设厅网站首页wordpress评论框中加文字提示
  • 南京营销型网站建设公司杭州模板建站代理
  • 网页设计比较优秀的网站沈阳网站推广公司
  • 西安网站建设维护如何免费制作app软件
  • 用 net做网站大理市城乡建设局网站
  • 怎么在建筑网站做翻译兼职哈尔滨 高端网站建设
  • 网站建设颜色注意事项优化网站要怎么做
  • 作图神器沧州网站优化
  • 做水果的网站有哪些公司网页设计作品
  • 电子商务网站运营流程北京app制作
  • 怎么在百度推广自己的网站市级部门网站建设自评报告
  • 德州做网站优化专门做酒的网站
  • 旅游网站建设案例分析北京seo案例
  • 网站建设公司 优势单页网站对攻击的好处
  • 网站域名更换济南代做标书网站标志
  • 网站开发实用技术答案外国出名的设计网站
  • 最珠海app下载官方win10系统优化软件哪个好
  • 宜春公司网站建设百度地图广告投放