在Python 3中,进行网络编程主要涉及到socket编程
- 导入socket模块:
import socket
- 创建一个socket对象:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
这里,socket.AF_INET
表示使用IPv4地址族,socket.SOCK_STREAM
表示使用TCP协议。你也可以根据需要选择其他地址族和协议。
- 绑定IP地址和端口号:
server_ip = '127.0.0.1' server_port = 12345 sock.bind((server_ip, server_port))
- 开始监听连接:
sock.listen(5)
这里,5
表示最大挂起连接数。可以根据需要调整这个值。
- 接受客户端连接:
client_socket, client_address = sock.accept()
这将返回一个新的socket对象(client_socket
)和客户端的IP地址和端口号(client_address
)。
- 与客户端进行通信:
# 向客户端发送数据 message = 'Hello from server!' client_socket.send(message.encode('utf-8')) # 从客户端接收数据 data = https://www.yisu.com/ask/client_socket.recv(1024)'Received from client:', data.decode('utf-8'))
- 关闭socket连接:
client_socket.close() sock.close()
将以上代码整合到一个完整的示例中:
import socket # 创建socket对象 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定IP地址和端口号 server_ip = '127.0.0.1' server_port = 12345 sock.bind((server_ip, server_port)) # 开始监听连接 sock.listen(5) print('Server is listening...') # 接受客户端连接 client_socket, client_address = sock.accept() print(f'Connected to client {client_address}') # 向客户端发送数据 message = 'Hello from server!' client_socket.send(message.encode('utf-8')) # 从客户端接收数据 data = https://www.yisu.com/ask/client_socket.recv(1024)'Received from client:', data.decode('utf-8')) # 关闭socket连接 client_socket.close() sock.close()
运行此服务器代码后,可以使用客户端(如telnet、nc等)连接到服务器并进行通信。