python socket
时间: 2023-09-12 17:09:59 浏览: 90
Python Socket
Python的socket模块提供了一个标准的BSD socket API,可以实现网络通信。使用socket模块,你可以创建客户端和服务器端程序,实现网络数据传输。
以下是基本的socket通信流程:
1. 创建socket对象,可以使用socket.socket()函数;
2. 绑定IP地址和端口号,使用socket.bind()函数;
3. 监听客户端连接请求,使用socket.listen()函数;
4. 接受客户端连接请求,使用socket.accept()函数;
5. 接收客户端发送的数据,使用socket.recv()函数;
6. 发送数据到客户端,使用socket.send()函数;
7. 关闭连接,使用socket.close()函数。
以下是一个简单的示例,演示如何使用socket模块创建一个简单的服务器和客户端:
服务器端代码:
```python
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind(('localhost', 8000))
# 监听客户端连接请求
server_socket.listen(1)
# 接受客户端连接请求
client_socket, client_address = server_socket.accept()
print("Connection from:", client_address)
# 接收客户端发送的数据
data = client_socket.recv(1024)
print("Received:", data.decode())
# 发送数据到客户端
client_socket.send("Hello, client!".encode())
# 关闭连接
client_socket.close()
server_socket.close()
```
客户端代码:
```python
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("Received:", data.decode())
# 关闭连接
client_socket.close()
```
在运行服务器端代码后,可以使用客户端代码连接到服务器并发送数据。服务器端代码将接收客户端发送的数据,并向客户端发送一条消息。在完成数据传输后,客户端和服务器端都将关闭连接。
阅读全文