python网络编程之socket(python socket.socket)

最近正在帮人写一个小程序,需要联机使用,这时候就需要用到网络编程的知识了,这当然要用到我们的Socket编程了,可以创建基于网络的应用程序,实现不同计算机之间的通信。Python标准库中的socket模块提供了创建Socket连接、发送和接收数据的功能。

Python中的socket通信逻辑如下图所示(图片来自网络):

以下是一个简单的示例,展示了如何在Python中使用Socket编程进行简单的客户端和服务器通信:

服务器端代码(server.py)

import socket

# 创建一个IPv4 TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定IP地址和端口号
host = '127.0.0.1'
port = 12345
server_socket.bind((host, port))

# 设置允许最大连接数
server_socket.listen(5)

print("等待客户端连接...")
client_socket, client_address = server_socket.accept()
print(f"客户端已连接:{client_address}")

# 发送欢迎消息给客户端
message = "欢迎连接到服务器!"
client_socket.send(message.encode())

# 接收客户端发送的数据
data = client_socket.recv(1024).decode()
print(f"收到客户端消息:{data}")

# 关闭连接
client_socket.close()
server_socket.close()

客户端代码(client.py)

import socket

# 创建一个IPv4 TCP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
host = '127.0.0.1'
port = 12345
client_socket.connect((host, port))

# 接收服务器发送的欢迎消息
welcome_message = client_socket.recv(1024).decode()
print("从服务器收到消息:", welcome_message)

# 发送数据给服务器
message = "Hello, Server!"
client_socket.send(message.encode())

# 关闭连接
client_socket.close()

在这个示例中,服务器端首先创建一个Socket,并通过bind方法绑定了IP地址和端口号。然后,服务器通过listen方法监听连接,并使用accept方法等待客户端连接。客户端创建一个Socket,并使用connect方法连接到服务器。一旦连接建立,服务器向客户端发送欢迎消息,客户端接收并打印消息。然后,客户端发送数据给服务器,服务器接收并打印数据。最后,连接被关闭。

请注意,这只是一个非常基础的示例,用于演示Socket编程的基本概念。在实际项目中,您可能需要处理更多的错误情况、处理更复杂的通信协议和数据格式等。如果要创建更复杂的网络应用程序,可能需要使用更高级的库和框架,如asyncio、Twisted等。

原文链接:,转发请注明来源!