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 Web 麻瓜编程指南

下一篇:Python 编程:初学者的最佳选择