简介:本文将全面解析Socket编程,从基本概念、原理到实际应用,带领读者逐步深入了解这一重要的网络编程技术。
Socket编程是网络编程的一种重要形式,它允许不同计算机之间进行通信。在深入探讨Socket编程之前,我们首先需要理解一些基本概念。
基本概念
客户端(client.py):
import socketdef start_server():server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(('localhost', 12345)) # 绑定IP地址和端口号server_socket.listen(1) # 开始监听连接请求,最多允许一个连接请求等待print('Server is listening on port 12345...')while True:client_socket, addr = server_socket.accept() # 接收客户端连接请求并建立连接print(f'Accepted connection from {addr}')data = client_socket.recv(1024).decode() # 接收客户端发送的数据print(f'Received message: {data}')client_socket.send('Echo: {0}'.format(data).encode()) # 发送数据回客户端client_socket.close() # 关闭连接if __name__ == '__main__':start_server()
运行服务器端代码后,它将开始监听连接请求。运行客户端代码后,它将连接到服务器并发送一条消息“Hello, Server!”,然后等待服务器的回应。服务器收到消息后将回复“Echo: Hello, Server!”给客户端。这样,一个简单的客户端-服务器通信就完成了。
import socketdef start_client():client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client_socket.connect(('localhost', 12345)) # 连接到服务器端IP地址和端口号message = 'Hello, Server!' # 要发送的消息client_socket.send(message.encode()) # 发送数据到服务器端data = client_socket.recv(1024).decode() # 从服务器端接收数据print(f'Received message: {data}')client_socket.close() # 关闭连接if __name__ == '__main__':start_client()