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

高大上公司网站wordpress 弹窗插件

高大上公司网站,wordpress 弹窗插件,网络推广加盟项目,服务器做ssr后还可以做网站吗1.socket是什么#xff1f; Socket是应用层与TCP/IP协议族通信的中间软件抽象层#xff0c;它是一组接口。在设计模式中#xff0c;Socket其实就是一个门面模式#xff0c; 它把复杂的TCP/IP协议族隐藏在Socket接口后面#xff0c;对用户来说#xff0c;一组简单的接口就…1.socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层它是一组接口。在设计模式中Socket其实就是一个门面模式 它把复杂的TCP/IP协议族隐藏在Socket接口后面对用户来说一组简单的接口就是全部让Socket去组织数据以符合指定的协议。 所以我们无需深入理解tcp/udp协议socket已经为我们封装好了我们只需要遵循socket的规定去编程写出的程序自然就是遵循tcp/udp标准的。 注意也有人将socket说成ipportip是用来标识互联网中的一台主机的位置而port是用来标识这台机器上的一个应用程序ip地址 是配置到网卡上的而port是应用程序开启的ip与port的绑定就标识了互联网中独一无二的一个应用程序而程序的pid是同一台机器上不同进程或者线程的标识。 套接字发展史及分类 套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种或者称为有两个种族,分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族 套接字家族的名字AF_UNIX unix一切皆文件基于文件的套接字调用的就是底层的文件系统来取数据两个套接字进程运行在同一机器可以通过访问同一个文件系统间接完成通信 基于网络类型的套接字家族 套接字家族的名字AF_INET (还有AF_INET6被用于ipv6还有一些其他的地址家族不过他们要么是只用于某个平台要么就是已经被废弃或者是很少被使用或者是根本没有实现所有地址家族中AF_INET是使用最广泛的一个python支持很多种地址家族但是由于我们只关心网络编程所以大部分时候我么只使用AF_INET) 套接字工作流程 一个生活中的场景。你要打电话给一个朋友先拨号朋友听到电话铃声后提起电话这时你和你的朋友就建立起了连接就可以讲话了。等交流结束挂断电话结束此次交谈。 生活中的场景就解释了这工作原理。 先从服务器端说起。 服务器端先初始化Socket 然后与端口绑定(bind) 对端口进行监听(listen) 调用accept阻塞等待客户端连接。 在这时如果有个客户端初始化一个Socket 然后连接服务器(connect)如果连接成功这时客户端与服务器端的连接就建立了。客户端发送数据请求服务器端接收请求并处理请求然后把回应数据发送给客户端客户端读取数据最后关闭连接一次交互结束 socket()模块函数用法 1 import socket2 socket.socket(socket_family,socket_type,protocal0)3 socket_family 可以是 AF_UNIX 或 AF_INET。socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM。protocol 一般不填,默认值为 0。4 5 获取tcp/ip套接字6 tcpSock socket.socket(socket.AF_INET, socket.SOCK_STREAM)7 8 获取udp/ip套接字9 udpSock socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 10 11 由于 socket 模块中有太多的属性。我们在这里破例使用了from module import *语句。使用 from socket import *,我们就把 socket 模块里的所有属性都带到我们的命名空间里了,这样能 大幅减短我们的代码。 12 例如tcpSock socket(AF_INET, SOCK_STREAM) 服务端套接字函数 s.bind()    绑定(主机,端口号)到套接字 s.listen()  开始TCP监听 s.accept()  被动接受TCP客户的连接,(阻塞式)等待连接的到来 客户端套接字函数 s.connect()     主动初始化TCP服务器连接 s.connect_ex()  connect()函数的扩展版本,出错时返回出错码,而不是抛出异常 公共用途的套接字函数 s.recv()            接收TCP数据 s.send()            发送TCP数据(send在待发送数据量大于己端缓存区剩余空间时,数据丢失,不会发完) s.sendall()         发送完整的TCP数据(本质就是循环调用send,sendall在待发送数据量大于己端缓存区剩余空间时,数据不丢失,循环调用send直到发完) s.recvfrom()        接收UDP数据 s.sendto()          发送UDP数据 s.getpeername()     连接到当前套接字的远端的地址 s.getsockname()     当前套接字的地址 s.getsockopt()      返回指定套接字的参数 s.setsockopt()      设置指定套接字的参数 s.close()           关闭套接字 面向锁的套接字方法 s.setblocking()     设置套接字的阻塞与非阻塞模式 s.settimeout()      设置阻塞套接字操作的超时时间 s.gettimeout()      得到阻塞套接字操作的超时时间 面向文件的套接字的函数 s.fileno()          套接字的文件描述符 s.makefile()        创建一个与该套接字相关的文件   1用打电话的流程快速描述socket通信 2服务端和客户端加上基于一次链接的循环通信 3客户端发送空卡主证明是从哪个位置卡的 服务端 from socket import * phonesocket(AF_INET,SOCK_STREAM) phone.bind((127.0.0.1,8081)) phone.listen(5)conn,addrphone.accept() while True:dataconn.recv(1024)print(server)print(data)conn.send(data.upper()) conn.close() phone.close() 客户端 from socket import *phonesocket(AF_INET,SOCK_STREAM) phone.connect((127.0.0.1,8081))while True:msginput(: ).strip()phone.send(msg.encode(utf-8))print(client)dataphone.recv(1024)print(data)说明卡的原因缓冲区为空recv就卡住引出原理图4.演示客户端断开链接服务端的情况提供解决方法5.演示服务端不能重复接受链接而服务器都是正常运行不断来接受客户链接的6:简单演示udp 服务端 from socket import * phonesocket(AF_INET,SOCK_DGRAM) phone.bind((127.0.0.1,8082)) while True:msg,addrphone.recvfrom(1024)phone.sendto(msg.upper(),addr) 客户端 from socket import * phonesocket(AF_INET,SOCK_DGRAM) while True:msginput(: )phone.sendto(msg.encode(utf-8),(127.0.0.1,8082))msg,addrphone.recvfrom(1024)print(msg)udp客户端可以并发演示 udp客户端可以输入为空演示说出recvfrom与recv的区别暂且不提tcp流和udp报的概念留到粘包去说基于TCP的套接字  tcp是基于链接的必须先启动服务端然后再启动客户端去链接服务端 tcp服务端 1 ss socket() #创建服务器套接字 2 ss.bind() #把地址绑定到套接字 3 ss.listen() #监听链接 4 inf_loop: #服务器无限循环 5 cs ss.accept() #接受客户端链接 6 comm_loop: #通讯循环 7 cs.recv()/cs.send() #对话(接收与发送) 8 cs.close() #关闭客户端套接字 9 ss.close() #关闭服务器套接字(可选) tcp客户端 1 cs socket() # 创建客户套接字 2 cs.connect() # 尝试连接服务器 3 comm_loop: # 通讯循环 4 cs.send()/cs.recv() # 对话(发送/接收) 5 cs.close() # 关闭客户套接字 服务端 #_*_coding:utf-8_*_ __author__ Linhaifeng import socket ip_port(127.0.0.1,8081)#电话卡 BUFSIZE1024 ssocket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机 s.bind(ip_port) #手机插卡 s.listen(5) #手机待机while True: #新增接收链接循环,可以不停的接电话conn,addrs.accept() #手机接电话# print(conn)# print(addr)print(接到来自%s的电话 %addr[0])while True: #新增通信循环,可以不断的通信,收发消息msgconn.recv(BUFSIZE) #听消息,听话# if len(msg) 0:break #如果不加,那么正在链接的客户端突然断开,recv便不再阻塞,死循环发生print(msg,type(msg))conn.send(msg.upper()) #发消息,说话 conn.close() #挂电话s.close() #手机关机 客户端 #_*_coding:utf-8_*_ __author__ Linhaifeng import socket ip_port(127.0.0.1,8081) BUFSIZE1024 ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect_ex(ip_port) #拨电话while True: #新增通信循环,客户端可以不断发收消息msginput(: ).strip()if len(msg) 0:continues.send(msg.encode(utf-8)) #发消息,说话(只能发送字节类型) feedbacks.recv(BUFSIZE) #收消息,听话print(feedback.decode(utf-8))s.close() #挂电话  基于UDP的套接字 udp是无链接的先启动哪一端都不会报错 udp服务端 1 ss socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 4 cs ss.recvfrom()/ss.sendto() # 对话(接收与发送) 5 ss.close() # 关闭服务器套接字 udp客户端 cs socket() # 创建客户套接字 comm_loop: # 通讯循环cs.sendto()/cs.recvfrom() # 对话(发送/接收) cs.close() # 关闭客户套接字 #_*_coding:utf-8_*_ import socket ip_port(127.0.0.1,9000) BUFSIZE1024 udp_server_clientsocket.socket(socket.AF_INET,socket.SOCK_DGRAM)udp_server_client.bind(ip_port)while True:msg,addrudp_server_client.recvfrom(BUFSIZE)print(msg,addr)udp_server_client.sendto(msg.upper(),addr) #_*_coding:utf-8_*_ __author__ Linhaifeng import socket ip_port(127.0.0.1,9000) BUFSIZE1024 udp_server_clientsocket.socket(socket.AF_INET,socket.SOCK_DGRAM)while True:msginput(: ).strip()if not msg:continueudp_server_client.sendto(msg.encode(utf-8),ip_port)back_msg,addrudp_server_client.recvfrom(BUFSIZE)print(back_msg.decode(utf-8),addr) 时间服务器 #_*_coding:utf-8_*_ __author__ Linhaifeng from socket import * from time import strftimeip_port(127.0.0.1,9000) bufsize1024tcp_serversocket(AF_INET,SOCK_DGRAM) tcp_server.bind(ip_port)while True:msg,addrtcp_server.recvfrom(bufsize)print(,msg)if not msg:time_fmt%Y-%m-%d %Xelse:time_fmtmsg.decode(utf-8)back_msgstrftime(time_fmt)tcp_server.sendto(back_msg.encode(utf-8),addr)tcp_server.close() ntp客户端 #_*_coding:utf-8_*_ __author__ Linhaifeng from socket import * ip_port(127.0.0.1,9000) bufsize1024tcp_clientsocket(AF_INET,SOCK_DGRAM)while True:msginput(请输入时间格式(例%Y %m %d): ).strip()tcp_client.sendto(msg.encode(utf-8),ip_port)datatcp_client.recv(bufsize)print(data.decode(utf-8))tcp_client.close()  转载于:https://www.cnblogs.com/lujiacheng-Python/p/9751832.html
http://wiki.neutronadmin.com/news/175316/

相关文章:

  • 网站建设的教学视频网络服务提供商是指什么
  • 网站建设合同的主要内容特别好的企业网站程序
  • 品牌网站设计制作多少钱哈尔滨工程招投标信息网
  • 常州企业网站建设精神文明建设专题网站
  • 天天新品网做网站设计师论坛平台有哪些
  • 湖南网站建设公司 都来磐石网络自治区住房和城乡建设厅网站
  • 采票网站刷流水做任务网站运营有前途吗
  • 做二手房网站有哪些资料企业所得税优惠政策2021年小微企业
  • 受欢迎的医疗网站建设wordpress 文章 来源
  • 利用wordpress建站网站怎么更新
  • 长春高端品牌网站建设深圳做自适应网站
  • 立水桥网站建设网页设计策划书
  • 湖北专业网站建设耗材网站建设的博客
  • 网站添加flv视频代码百度指数查询手机版app
  • 架子鼓谱那个网站做的好支付宝小程序开发教程
  • 设计公司网站什么重要网络营销就是seo正确吗
  • 网站建设及运营 多少钱手机研发流程
  • 网站建设新零售wordpress set option
  • 定制网站建设费用石家庄网站建设哪家专业
  • 有哪些公司的网站做的很好看seo搜索优化邵阳
  • 网站应用系统设计方案中科建建设发展有限公司网站
  • wordpress 官方网站邮箱如何注册企业邮箱
  • 西安网站制作工程师网站制作技术支持
  • 微网站 php网页游戏传奇大全
  • 哪个网站可以做曝光台dede网站架设教程
  • 公司网站 钓鱼网站移动网站功能
  • 广西网站建设介绍网站空间分类
  • 北京做网站的公司哪家好建电子商务网站
  • 分宜网站建设深圳那个网站建设
  • 企业做推广哪些网站比较好建设一个电商网站需要多少钱