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

极家装修怎么样啊优化疫情防控 这些措施你应该知道

极家装修怎么样啊,优化疫情防控 这些措施你应该知道,平罗县住房和城乡建设局网站,怎么建网站锦州概述 在上一节,我们介绍了如何在Python中使用Json,包括:Json序列化、Json反序列化、读Json文件、写Json文件、将类对象转换为Json、将Json转换为类对象等内容。在这一节,我们将介绍如何在Python中使用网络。Python网络编程覆盖的范…

概述

        在上一节,我们介绍了如何在Python中使用Json,包括:Json序列化、Json反序列化、读Json文件、写Json文件、将类对象转换为Json、将Json转换为类对象等内容。在这一节,我们将介绍如何在Python中使用网络。Python网络编程覆盖的范围非常广,包括:套接字编程、socketserver、HTTP和Web开发、异步编程和asyncio等。在本专栏中,我们将只介绍比较基础的套接字编程和socketserver。

套接字编程

        套接字是用于在计算机之间进行通信的基本接口。Python的socket库提供了一个用于创建和管理套接字的接口,你可以使用这个库来创建客户端和服务器应用程序。socket库提供了许多用于网络编程的函数,以下是一些常用的函数列表。

函数

含义

socket()

创建一个新的套接字对象。

bind()

将套接字绑定到指定的地址(IP地址和端口号)。

listen()

开始在套接字上监听传入的TCP连接。

accept()

接受来自客户端的TCP连接,并返回客户端套接字和地址。

connect()

连接到指定的TCP服务器和端口。

send()

发送TCP数据到连接的服务器。

recv()

从连接的服务器接收TCP数据。

sendall()

发送所有TCP数据到连接的服务器。

recvfrom()

从连接的服务器接收UDP数据,并返回数据和发送者的地址。

sendto()

向连接的服务器发送UDP数据,并指定数据和接收者的地址。

getsockname()

返回套接字自身的地址,返回值通常是元组(ip, port)。

getpeername()

返回连接的对端地址,返回值通常是元组(ip, port)。

setsockopt()

设置套接字的选项。

getsockopt()

获取套接字的选项。

close()

关闭套接字连接。

select()

监视多个套接字,等待它们变得可读或可写。

setblocking(flag)

如果flag为 False,则将套接字设为非阻塞模式,否则将套接字设为阻塞模式(默认值)。非阻塞模式下,如果调用recv()没有发现任何数据,或send()调用无法立即发送数据,那么将引起socket.error异常。

        接下来,我们介绍几个比较重要的套接字函数。

        1、创建套接字:使用socket()函数创建一个套接字对象。

import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        在上面的示例代码中,我们创建了一个TCP套接字。AF_INET参数指定了该套接字使用IPv4协议,SOCK_STREAM参数指定了该套接字使用TCP协议。

        2、连接服务器:使用connect()函数连接到服务器。

import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 8000)
sock.connect(server_address)

        在上面的示例代码中,我们创建了一个套接字,并将其连接到本地主机8000端口上的服务器。

        3、发送和接收数据:使用send()函数发送数据,使用recv()函数接收数据。

import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 8000)
sock.connect(server_address)message = b'Hello, CSDN'
sock.send(message)data = sock.recv(1024)
print('Received', repr(data))sock.close()

        在上面的示例代码中,我们创建了一个套接字,并将其连接到本地主机8000端口上的服务器。然后,我们发送了一个消息,并等待接收响应。最后,我们关闭了套接字。

        下面我们给出一个简单的服务端程序和客户端程序。服务端程序的示例代码如下:

# Server.py
import socket# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定IP地址和端口号
server_socket.bind(('localhost', 8000))# 开始监听连接
server_socket.listen()
print('Waiting connect...')# 接受客户端连接
client_socket, client_address = server_socket.accept()
print('Client connect success:', client_address)# 接收客户端发送的数据
data = client_socket.recv(1024)
print('Recv data:', data.decode())# 向客户端发送数据
client_socket.send('Hello client'.encode())# 关闭连接
client_socket.close()
server_socket.close()

        客户端程序的示例代码如下:

# Client.py
import socket# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('localhost', 8000))# 向服务器发送数据
client_socket.send('Hello server'.encode())# 接收服务器发送的数据
data = client_socket.recv(1024)
print('Recv data:', data.decode())# 关闭连接
client_socket.close()

socketserver

        socketserver模块是一个用于构建基于套接字的网络服务器的模块。这个模块提供了一些类,比如:SocketServer、TCPServer、UDPServer等,用于处理底层的socket通信,并且还提供了处理器类,用于处理每个客户端的请求。

        下面我们给出一个基于socketserver的服务端程序,其示例代码如下:

# Server2.py
import socketserverclass MyTCPHandler(socketserver.BaseRequestHandler):def handle(self):self.data = self.request.recv(1024).decode()print(f'Recv data from {self.client_address[0]}: {self.data}')self.request.sendall(b"Hello client")socketserver.TCPServer.allow_reuse_address = True
server = socketserver.TCPServer(('localhost', 8000), MyTCPHandler)
server.serve_forever()

        在上面的示例代码中,我们创建了一个自定义的TCP处理器类MyTCPHandler,该类继承自socketserver.BaseRequestHandler。这个处理器类有一个handle()函数,当有新的客户端连接时,这个函数便会被调用。我们在这个函数中接收客户端发送的数据,并发送一条回应。然后,我们创建了一个TCP服务器对象,指定了要连接的服务器地址和端口,以及我们自定义的处理器类。最后,调用server的serve_forever方法,开始监听客户端的连接。

http://www.hkea.cn/news/651311/

相关文章:

  • 宝安附近公司做网站建设多少钱深圳百度开户
  • 成都紧急通知seo网络营销招聘
  • 思坎普网站建设如何做营销推广
  • 太原网站优化公司有域名和服务器怎么建网站
  • 网站策划的前景seo 推广
  • wordpress导入网站文章怎么联系百度人工客服
  • 制冷机电工程东莞网站建设简阳seo排名优化培训
  • 北京网站建设 网站维护服装营销方式和手段
  • 唐山高端网站建设开发新客户的十大渠道
  • 小地方的旅游网站怎么建设seo教程有什么
  • 做网站教程宁波百度seo点击软件
  • asp.net个人网站北京专门做seo
  • 石家庄java开发做网站百度资源站长平台
  • 有哪些网站系统网络营销首先要进行
  • 网站建设硬件设置竞价广告是怎么推广的
  • 网站的平面设计图用ps做国外搜索引擎大全百鸣
  • 深圳专业企业网站建设前端培训
  • 南京平台公司seo搜索培训
  • 横沥网站建设武汉百度百科
  • 百度给做网站公司线上运营的5个步骤
  • 盘锦网站建设公司网络营销策略包括哪些
  • 简述电子商务网站开发的基本原则一站式网络营销
  • 商丘网站网络推广员的工作内容和步骤
  • 取消wordpress邮箱认证北京搜索优化排名公司
  • 千库网素材南宁seo优势
  • 西安机场商务宾馆百度做网站怎么在百度上做网站
  • ps网站建设seo网络公司
  • 网站建设步骤 教 程网站怎么做谷歌推广
  • 网站制作需要注意什么潍坊做网站哪家好
  • 专门做团购的网站有哪些色盲图