Python 中 Socket 基本编程362
Socket 是一种用于网络通信的低级接口。它允许程序通过网络发送和接收数据。在 Python 中,可以使用 socket 模块来处理 Socket 编程。
Socket 编程涉及两个主要角色:客户端和服务器。客户端程序连接到服务器程序并发送请求,而服务器程序接收请求并发送响应。
创建 Socket
要创建 Socket,可以使用 socket 函数,它需要两个参数:family 和 type。family 指定 Socket 类型,可以是 AF_INET(IPv4)或 AF_INET6(IPv6)。type 指定 Socket 的类型,可以是 SOCK_STREAM(TCP)或 SOCK_DGRAM(UDP)。```python
import socket
# 创建一个 TCP Socket
s = (socket.AF_INET, socket.SOCK_STREAM)
# 创建一个 UDP Socket
s = (socket.AF_INET, socket.SOCK_DGRAM)
```
绑定 Socket
绑定 Socket 会将其关联到一个特定的 IP 地址和端口。对于服务器程序,这非常重要,因为它允许客户端连接到该特定地址和端口。```python
(("localhost", 12345)) # 绑定到本地主机和端口 12345
```
监听 Socket(仅适用于服务器)
对于服务器程序,在绑定 Socket 后需要监听传入的连接请求。listen 方法允许服务器开始侦听。```python
(5) # 最多允许 5 个传入连接等待
```
接受连接(仅适用于服务器)
当客户端连接到服务器时,服务器使用 accept 方法接受该连接。accept 返回一个新的 Socket 对象,表示客户端连接,以及客户端的地址。```python
client_socket, client_address = () # 接受客户端连接
```
发送和接收数据
连接建立后,客户端和服务器可以使用 send 和 recv 方法发送和接收数据。```python
# 发送数据
(b"Hello world!")
# 接收数据
data = (1024) # 最多接收 1024 字节的数据
```
关闭 Socket
完成通信后,请使用 close 方法关闭 Socket。```python
()
```
示例:简单的客户端-服务器程序
以下是一个简单的客户端-服务器程序示例:客户端:
```python
import socket
# 创建一个 TCP Socket
s = (socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
(("localhost", 12345))
# 发送数据
(b"Hello from the client!")
# 接收服务器响应
data = (1024)
# 输出响应
print(())
# 关闭 Socket
()
```
服务器:
```python
import socket
# 创建一个 TCP Socket
s = (socket.AF_INET, socket.SOCK_STREAM)
# 绑定 Socket
(("localhost", 12345))
# 监听 Socket
(5)
# 接受客户端连接
client_socket, client_address = ()
# 接收客户端数据
data = (1024)
# 发送响应
(b"Hello from the server!")
# 关闭客户端 Socket
()
# 关闭 Socket
()
```
常见错误* 确保服务器和客户端程序在同一网络上。
* 确保客户端程序连接到服务器程序监听的正确端口。
* 处理 Socket 操作的潜在异常,例如 ConnectionRefusedError 和 TimeoutError。
Socket 编程是 Python 中进行网络通信的强大工具。通过使用 socket 模块,您可以创建客户端和服务器程序来发送和接收数据。本教程提供了基本概念和一个示例程序,以帮助您入门。
2024-12-07
Python编程新手指南:精选入门经典题目与解答,告别迷茫,轻松上手!
https://jb123.cn/python/71898.html
Perl编程的基石:深入理解`my`关键字与词法作用域
https://jb123.cn/perl/71897.html
Perl实用编程:从经典实例看Perl的强大魅力
https://jb123.cn/perl/71896.html
Python源码深度探索:从何获取、如何学习与应用全指南
https://jb123.cn/python/71895.html
JavaScript与智能卡:从Web到硬件的读写交互深度解析 (WebUSB/NFC/本地服务实战指南)
https://jb123.cn/javascript/71894.html
热门文章
Python 编程解密:从谜团到清晰
https://jb123.cn/python/24279.html
Python编程深圳:初学者入门指南
https://jb123.cn/python/24225.html
Python 编程终端:让开发者畅所欲为的指令中心
https://jb123.cn/python/22225.html
Python 编程专业指南:踏上编程之路的全面指南
https://jb123.cn/python/20671.html
Python 面向对象编程学习宝典,PDF 免费下载
https://jb123.cn/python/3929.html