Python 3 介绍(二十四)--Python3 网络编程介绍

目录

Python 标准库中的网络编程模块

1. Socket 模块

创建 TCP 服务器

创建 TCP 客户端

创建 UDP 服务器

创建 UDP 客户端

2. HTTP 模块

创建简单的 HTTP 服务器

创建 HTTP 请求

第三方库

1. Requests

2. Flask

网络编程注意事项

总结


 

网络编程是计算机科学中的一个重要领域,涉及到使用网络协议(如TCP/IP)在不同的设备之间进行通信。Python 提供了多种方式来进行网络编程,包括使用标准库中的模块如 sockethttp.serverhttp.client 等,以及第三方库如 requestsFlask 等。

Python 标准库中的网络编程模块

1. Socket 模块

Socket 模块是最基础的网络编程模块之一,它提供了底层的网络通信接口。通过 Socket,你可以创建 TCP 或 UDP 的网络连接。

创建 TCP 服务器

 

python

深色版本

1import socket
2
3# 创建一个 socket 对象
4server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
5
6# 绑定 IP 地址和端口号
7server_socket.bind(('localhost', 12345))
8
9# 开始监听,最大连接数为 5
10server_socket.listen(5)
11
12print("Server is listening...")
13
14# 接受客户端连接
15client_socket, client_address = server_socket.accept()
16print(f"Connected by {client_address}")
17
18# 接收数据
19data = client_socket.recv(1024)
20print(f"Received: {data.decode()}")
21
22# 发送数据
23client_socket.sendall(b'Hello, Client!')
24
25# 关闭连接
26client_socket.close()
27server_socket.close()

创建 TCP 客户端

 

python

深色版本

1import socket
2
3# 创建一个 socket 对象
4client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
5
6# 连接到服务器
7client_socket.connect(('localhost', 12345))
8
9# 发送数据
10client_socket.sendall(b'Hello, Server!')
11
12# 接收数据
13data = client_socket.recv(1024)
14print(f"Received: {data.decode()}")
15
16# 关闭连接
17client_socket.close()

创建 UDP 服务器

 

python

深色版本

1import socket
2
3# 创建一个 socket 对象
4server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
5
6# 绑定 IP 地址和端口号
7server_socket.bind(('localhost', 12345))
8
9print("Server is listening...")
10
11# 接收数据
12data, client_address = server_socket.recvfrom(1024)
13print(f"Received from {client_address}: {data.decode()}")
14
15# 发送数据
16server_socket.sendto(b'Hello, Client!', client_address)
17
18# 关闭连接
19server_socket.close()

创建 UDP 客户端

 

python

深色版本

1import socket
2
3# 创建一个 socket 对象
4client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
5
6# 发送数据
7client_socket.sendto(b'Hello, Server!', ('localhost', 12345))
8
9# 接收数据
10data, server_address = client_socket.recvfrom(1024)
11print(f"Received from {server_address}: {data.decode()}")
12
13# 关闭连接
14client_socket.close()

2. HTTP 模块

Python 标准库中还提供了用于创建简单的 HTTP 服务器和客户端的模块。

创建简单的 HTTP 服务器

 

python

深色版本

1import http.server
2import socketserver
3
4PORT = 8000
5
6Handler = http.server.SimpleHTTPRequestHandler
7
8with socketserver.TCPServer(("", PORT), Handler) as httpd:
9    print(f"Serving at port {PORT}")
10    httpd.serve_forever()

创建 HTTP 请求

 

python

深色版本

1import http.client
2
3conn = http.client.HTTPSConnection("www.example.com")
4conn.request("GET", "/")
5response = conn.getresponse()
6print(response.status, response.reason)
7
8data = response.read()
9print(data.decode("utf-8"))
10
11conn.close()

第三方库

除了标准库之外,Python 社区还提供了许多优秀的第三方库来简化网络编程任务。

1. Requests

Requests 是一个非常流行的第三方库,用于发送 HTTP 请求。

 

python

深色版本

1import requests
2
3response = requests.get('https://api.github.com')
4print(response.status_code)
5print(response.text)

2. Flask

Flask 是一个轻量级的 Web 框架,非常适合构建小型 Web 应用程序。

 

python

深色版本

1from flask import Flask
2
3app = Flask(__name__)
4
5@app.route('/')
6def hello_world():
7    return 'Hello, World!'
8
9if __name__ == '__main__':
10    app.run()

网络编程注意事项

  1. 异常处理:在网络编程中,经常会出现连接失败、超时等问题,因此需要做好异常处理。
  2. 安全性:确保数据传输的安全性,特别是在处理敏感数据时,应该使用加密传输(如 HTTPS)。
  3. 并发处理:在网络编程中,特别是在服务器端,通常需要处理并发请求,可以使用多线程或多进程来提高性能。
  4. 测试:网络编程涉及网络通信,因此需要进行充分的测试,确保在不同网络环境下程序能够正常工作。

总结

Python 提供了多种工具和库来支持网络编程,无论是简单的网络通信还是复杂的 Web 应用程序,都可以使用 Python 来实现。通过上述示例,你应该能够了解如何使用 Python 标准库中的模块(如 sockethttp.server)以及第三方库(如 requestsFlask)来完成网络编程任务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值