在Python 3中,进行网络编程主要涉及到socket编程
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
这里,socket.AF_INET
表示使用IPv4地址族,socket.SOCK_STREAM
表示使用TCP协议。你也可以根据需要选择其他地址族和协议。
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 = client_socket.recv(1024)
print('Received from client:', data.decode('utf-8'))
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 = client_socket.recv(1024)
print('Received from client:', data.decode('utf-8'))
# 关闭socket连接
client_socket.close()
sock.close()
运行此服务器代码后,可以使用客户端(如telnet、nc等)连接到服务器并进行通信。