Kod sampel untuk pelanggan yang menggunakan protokol TCP untuk melaksanakan perbualan berterusan:
import socket # 客户端配置 HOST = 'localhost' PORT = 12345 # 创建TCP套接字并连接服务器 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect((HOST, PORT)) while True: # 获取用户输入 message = input("请输入要发送的消息:") # 发送消息到服务器 client_socket.sendall(message.encode("utf-8")) # 接收服务器传回的消息 data = client_socket.recv(1024) print(f"收到来自服务器的消息:{data.decode('utf-8')}") # 关闭套接字 client_socket.close()
Dalam contoh ini, kami mula-mula mencipta soket TCP dan menggunakan connect()
fungsi menyambung ke alamat dan port pelayan yang ditentukan. Kami kemudiannya menghantar mesej secara berterusan kepada pelayan dengan input pengguna dan menunggu pelayan membalas dan memaparkan keputusannya. Ambil perhatian bahawa memandangkan TCP ialah protokol berorientasikan sambungan, kami boleh menjamin kebolehpercayaan dan keteraturan mesej sepanjang sambungan.
Akhir sekali, kami menutup soket melalui fungsi close()
.
Perlu diingatkan bahawa apabila kita menggunakan protokol TCP, kita perlu memastikan pelayan juga menggunakan protokol TCP untuk komunikasi yang sepadan.
Berikut ialah kod contoh pelayan yang menggunakan protokol TCP untuk mencapai dialog berterusan:
import socket # 服务器配置 HOST = 'localhost' PORT = 12345 # 创建TCP套接字并绑定到地址和端口 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((HOST, PORT)) # 监听连接 server_socket.listen() # 接受连接并与客户端建立通信 client_socket, client_address = server_socket.accept() print(f"与客户端 {client_address} 建立连接。") while True: # 接收客户端传来的消息 data = client_socket.recv(1024) print(f"来自{client_address}的消息:{data.decode('utf-8')}") if not data: # 如果客户端关闭了连接,则退出循环 break # 获取用户输入 message = input("请输入要发送的消息:") # 发送消息到客户端 client_socket.sendall(message.encode("uft-8")) # 关闭套接字 client_socket.close() server_socket.close()
Dalam contoh ini, kami mula-mula mencipta antara muka soket TCP dan mengikatnya ke alamat dan port yang ditentukan. Kemudian, kami mula mendengar permintaan sambungan pelanggan melalui fungsi listen()
.
Apabila pelanggan menyambung, kami memanggil fungsi accept()
untuk menerima sambungan dan mengembalikan soket dan alamat pelanggan. Kami kemudiannya terus menerima dan menghantar data melalui gelung, sekali gus membolehkan perbualan berterusan.
Sila ambil perhatian bahawa memandangkan TCP ialah protokol berorientasikan sambungan, kami boleh menjamin kebolehpercayaan dan keteraturan mesej melalui sambungan. Akhir sekali, kami menutup soket melalui fungsi close()
.
Perlu diambil perhatian bahawa dalam pembangunan sebenar, kita mungkin perlu mencipta urutan atau proses baharu untuk setiap sambungan supaya dapat mengendalikan berbilang sambungan pelanggan pada masa yang sama.
Atas ialah kandungan terperinci Cara menggunakan TCP untuk melaksanakan perbualan antara klien dan pelayan dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!