Python的socket实现UDP通信较为简单,由于UDP不需要连接,因此收发端各自绑定IP和端口后,直接往目标IP和端口灌数据即可,虽然实现简单、速率高,但不够稳定。而面向连接的TCP协议各方面特点与UDP相反。
- 服务器端(Server):监听某个端口,等待客户端连接(因此需要先启动服务器端程序)。
- 客户端(Client):主动连接服务器,发送或接收数据。
- 一旦连接建立,双方可以互相发送和接收数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 12345))
server_socket.listen(5)
client_socket, addr = server_socket.accept()
try: while True: data = client_socket.recv(1024) client_socket.sendall(f"Server收到:{data.decode('utf-8')}".encode('utf-8')) except Exception as e: print("【服务器】发生错误:", e)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_ip = '127.0.0.1' server_port = 12345
client_socket.connect((server_ip, server_port))
try: while True: message = input() client_socket.sendall(message.encode('utf-8')) response = client_socket.recv(1024)
except Exception as e: print("【客户端】发生错误:", e)
|