Python Socket 编程实例详解
什么是 Socket?
Socket(套接字)是指通信的一种标准接口,用于在网络中的不同计算机之间进行通信。它是计算机间进行数据传输的一组约定,包括通信协议、地址、端口、传输方式等。
在 Python 中实现 Socket 通信的模块是 socket
。该模块包括了用于创建 Socket 程序的函数和类,其中最常用的是 socket.socket
。
Socket 编程基础
通过以下步骤可以在 Python 中创建 Socket 编程:
- 创建一个 Socket 对象,用
socket.socket()
函数进行创建 - 绑定 Socket 相关的地址和端口,用
bind()
函数进行绑定 - 等待客户端的连接请求,用
listen()
函数接收连接请求 - 创建一个新的 Socket 对象用于与客户端通信,用
accept()
函数接收客户端连接 - 向客户端发送数据,用
send()
函数发送数据 - 接收客户端发送的数据,用
recv()
函数接收数据
Python Socket 编程示例
1. 服务端代码示例
下面的代码演示了通过 Socket 编程实现一个简单的回显服务器。
import socket
# 创建一个 Socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_socket.bind(('localhost', 8000))
# 等待客户端的连接
server_socket.listen(1)
print('Server listenning on localhost:8000')
# 进入主循环
while True:
# 接收客户端连接
client, address = server_socket.accept()
print('Client connected from', address)
# 接收客户端发送的数据
data = client.recv(1024)
print('Received:', data.decode())
# 向客户端发送数据
client.send(data)
# 关闭客户端连接
client.close()
2. 客户端代码示例
下面的代码演示了通过 Socket 编程实现一个简单的回显客户端。
import socket
# 创建一个 Socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('localhost', 8000))
# 发送数据
client_socket.send(b'Hello, Server')
# 接收数据
data = client_socket.recv(1024)
# 打印接收到的数据
print('Received:', data.decode())
# 关闭客户端连接
client_socket.close()
在运行完服务端和客户端代码后,可以看到客户端会向服务端发送一条信息并接收回显信息,最后关闭连接。
总结
本文主要介绍了 Python Socket 编程的基础知识和代码实现,也给出了一个基本的回显服务器和客户端示例代码。Socket 编程还可以应用于很多其他场景,比如进行文件传输、聊天程序等,希望本文能为初学者提供一些帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python socket编程实例详解 - Python技术站