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

网站制作设计收费标准2023b站免费推广入口游戏

网站制作设计收费标准,2023b站免费推广入口游戏,舆情报告书,怎么在百度建设网站文章目录Socket编程什么是Socket,什么是TCP通信协议服务端TCP客户端TCP服务端代码客户端代码UDP通信服务端UDPUDP客户端的处理流程TCPServer与UDPServer代码仓库Python3基础内容学习Socket编程 学习Python网络编程有个绕不过的内容就是Socket编程 什么是Socket,什么是TCP通信…

文章目录

  • Socket编程
    • 什么是Socket,什么是TCP通信协议
      • 服务端TCP
      • 客户端TCP
      • 服务端代码
      • 客户端代码
    • UDP通信
      • 服务端UDP
      • UDP客户端的处理流程
    • TCPServer与UDPServer
  • 代码仓库
  • Python3基础内容学习

Socket编程

学习Python网络编程有个绕不过的内容就是Socket编程

什么是Socket,什么是TCP通信协议

Socket本义为“插座”在计算机网络术语中翻译为:“套接字”。

套接字如同计算机系统中的插座,不同的插孔可以接入相应的“线路”。这个类似于“插孔”的对象在网络中称为“端口”(Port)。

网络通过IP地址(或者与地址对应的主机名)找到某台计算机,再通过端口号来接入特定功能的网络,完成通信。

TCP是基于连接的传输协议,在使用TCP协议进行通信的时候,服务器一般遵循以下处理流程:

服务端TCP

  1. 创建Socket对象
  2. 绑定本地计算机上有效的地址和端口
  3. 监听客户端的连接请求
  4. 接受客户端的连接,并生产一个新的Socket对象。此Socket对象专门用于与客户端之间进行通信。
  5. 向客户端发送数据,或者接收从客户端发来的数据
  6. 关闭Socket对象,释放资源,通信结束。

客户端TCP

  1. 创建Socket对象。
  2. 连接服务器。连接的地址与端口就是服务器所绑定的监听端口。
  3. 连接建立后,可以向服务器发送数据,或者接收来自服务器的数据
  4. 关闭Socket对象,通信结束。

服务端代码

server.py

# 服务端程序
import socket   # 导入socket模块# 服务器地址信息
addr_info = ('127.0.0.1', 9999)# 创建socket对象 1. 创建Socket对象
sv = socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_TCP
)# 绑定地址信息 2. 绑定本地计算机上有效的地址和端口
sv.bind(addr_info)
# 监听客户端的连接 3. 监听客户端的连接请求
sv.listen()
print('服务器启动成功')
# 4. 接受客户端的连接,并生产一个新的Socket对象。此Socket对象专门用于与客户端之间进行通信。
client, addr = sv.accept()# 5. 向客户端发送数据,或者接收从客户端发来的数据
while True:data = client.recv(1024)if not data:breakmsg = bytes(data).decode()print(f'Client: {msg}')#6. 关闭Socket对象,释放资源,通信结束。
client.close()
sv.close()

accept() 方法返回两个对象。
一个Socket对象,用于与客户端进行通信。
一个地址对象,包含客户端的IP地址和端口号(元组对象)。

必须先调用bind方法绑定本地端口,再调用listen方法进行监听,然后才能调用accpet()方法接收连接。

调用 recv 方法读取客户端发来的数据

客户端代码

client.py

# 客户端程序
import socket# 服务器地址信息
sv_addr = ('127.0.0.1', 9999)# 创建socket对象
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_TCP
)# 连接服务器
sk.connect(sv_addr)# 发送消息
input_msg = input('请输入消息:')
# 对文本进行编码
data = input_msg.encode()
# 发送数据
sk.send(data)
# 关闭对象
sk.close()

UDP通信

UDP(User Datagram Protocol)翻译为“用户数据报协议”,提供简单的不可靠数据传输服务,其特点是通信之前不需要建立连接。

服务端UDP

处理流程

  1. 创建Socket对象。调用socket类的构造函数时,type参数需要指定为SOCK_DGRAM,proto参数可以设定为IPPROTO_UDP(可选)
  2. 调用bind方法绑定一个本地地址和端口。
  3. 调用recvfrom方法接收来自客户端的数据
  4. 关闭Socket对象

UDP客户端的处理流程

  1. 创建Socket对象
  2. 调用sendto方法直接向服务器发送数据
  3. 关闭Socket对象

TCPServer与UDPServer

创建服务器对象(TCPServer或UDPServer)后,调用serve_forever方法启动一个循环事件,可以不断地接收来自客户端的请求,直到shutdown方法调用才会退出。

服务器对象在案例化时需要提供 RequestHandlerClass 参数,此参数的类型为BaseRequestHandler的派生类。开发者可以从BaseRequestHandler类派生,然后重写handle方法来接收来自客户端的数据,或者向客户端发送数据。

Python标准库内置了两个BaseRequestHandler的子类,开发者可以直接从这两个类派生。StreamRequestHandler 类用于TCP协议,DatagramRequestHandler 类用于UDP协议。

服务端

import socket,socketserverclass custUDPRequestHandler(socketserver.BaseRequestHandler):def handle(self):# request 属性包含两个元素:# 第一个是接收的数据# 第二个是与客户端相关的 socket 对象data = self.request[0]# 获取客户端地址cl_addr = self.client_address[0]print(f'来自 {cl_addr} 的消息:')# decode方法默认使用UTF-8编码print(data.decode() + '\n')# 声明服务器所使用的本地地址与端口。
sv_addr = ('',18600)
# 实例化UDPServer类,并调用serve_forever方法循环接收消息。
with socketserver.UDPServer(sv_addr,custUDPRequestHandler) as server:server.serve_forever()

客户端

import socketaddr=('127.0.0.1',18600)client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM
)while True:data = input("请输入:")if not data:breakclient.sendto(bytes(data, 'utf-8'), addr)

代码仓库

代码仓库地址


Python3基础内容学习

  • Python3完全新手小白的学习手册
http://www.dtcms.com/wzjs/101266.html

相关文章:

  • 网站建设公司前景爱站seo工具包
  • b2b网站建设搜索引擎关键词优化技巧
  • 无锡制作网站公司哪家好小红书关键词排名怎么做
  • 广州城乡建设部网站首页太原好的网站制作排名
  • 怎样做微网站软文发布公司
  • 网站建设一般多少钱网址可以免费做网站推广的平台
  • 软件开发的一般流程苏州seo排名公司
  • 网站seo优化心得今天重大新闻
  • 国外科技网站欣赏引擎seo优
  • 那个网站做贷款的客源真实自己做网站制作流程
  • 湘潭租房网站百度浏览器网页版
  • 安徽省建设工程信息网站6宣传软文是什么意思
  • 站长工具在线免费观看一个新产品的营销方案
  • 广州网站建设工作室免费建站哪个网站最好
  • 表白网页生成器下载网站seo查询
  • 郑州富士康地址在哪里广东企业网站seo哪里好
  • 深圳品牌网站建设厦门百度整站优化服务
  • 高新区网站开发收录网
  • 网站设计制做报价培训班有哪些
  • 2023年的三 片日剧自动优化句子的软件
  • 合肥刚刚发布重要通知seo关键词排名优化软件怎么选
  • 建设银行网站网址百度收录推广
  • 企业网站建设的策略谷歌seo搜索引擎优化
  • 大连网站代运营的公司有哪些每日新闻摘抄10一15字
  • sharepoint做网站哈尔滨电话本黄页
  • 做淘客必须有自己内部网站吗seo顾问服务福建
  • php网站 缓存长沙seo袁飞
  • 大庆 网站制作推广营销企业
  • 新公司 做网站 流程滨州网站seo
  • 网站建设策划书的主要内容网络优化工程师是干什么的