Sebagai bahasa pengaturcaraan yang cekap dan mudah dipelajari, Python mempunyai perpustakaan pengaturcaraan rangkaian yang kaya dan mudah digunakan, jadi ia telah menjadi salah satu bahasa pilihan untuk pembangunan bahagian pelayan. Pengaturcaraan pelayan Python ialah kemahiran yang memerlukan pemahaman mendalam tentang protokol dan asas rangkaian, serta keupayaan untuk menggunakan bahasa pengaturcaraan Python dan perpustakaan berkaitan dengan mahir. Artikel ini akan memperkenalkan pengetahuan dan kemahiran asas pengaturcaraan pelayan Python daripada pemahaman protokol kepada amalan pengekodan.
Pemahaman mendalam tentang protokol
Rangkaian ialah sistem yang kompleks Unit asasnya ialah paket data, dan penghantarannya bergantung pada pelbagai protokol. Dalam pengaturcaraan pelayan Python, anda perlu mempunyai pemahaman yang mendalam tentang protokol rangkaian, yang merupakan asas pengaturcaraan pelayan. Berikut ialah protokol rangkaian yang biasa digunakan:
Kemahiran pengaturcaraan pelayan Python
Pengaturcaraan pelayan Python memerlukan penggunaan banyak fungsi dan teknik perpustakaan, yang paling penting ialah perpustakaan soket. Seterusnya, kita akan mulakan dengan penggunaan perpustakaan soket dan menerangkan kemahiran dan perkara utama pengaturcaraan pelayan Python.
Pustaka soket Python merangkum API soket asas dan digunakan untuk melaksanakan aplikasi rangkaian. Dalam Python, gunakan fungsi socket.socket() untuk mencipta objek soket, yang parameternya termasuk socket_family, socket_type dan protokol. Berikut ialah langkah asas untuk mencipta objek soket:
import socket # 创建TCP socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建UDP socket sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Pelayan perlu mengikat port dan alamat IP untuk mendengar permintaan Sambungan klien. Gunakan fungsi socket.bind() untuk mengikat objek soket ke port dan alamat IP yang ditentukan.
import socket # 创建TCP socket对象 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定到指定的IP和端口 sock.bind(('127.0.0.1', 9000)) # 监听客户端连接 sock.listen(5)
Semasa pelayan sedang berjalan, pelanggan akan membuat permintaan sambungan dan pelayan perlu boleh menerima permintaan ini. Menggunakan fungsi socket.accept(), pelayan boleh menerima permintaan sambungan pelanggan.
import socket # 创建TCP socket对象 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定到指定的IP和端口 sock.bind(('127.0.0.1', 9000)) # 监听客户端连接 sock.listen(5) while True: # 等待客户端连接 client, addr = sock.accept() print(f'客户端 {addr} 已连接') # 处理客户端请求 while True: data = client.recv(1024) if not data: break client.sendall(data) # 关闭客户端连接 client.close()
Selepas pelanggan mewujudkan sambungan dengan pelayan, pelanggan perlu menghantar data permintaan kepada pelayan. Dalam pengaturcaraan pelayan Python, anda boleh menggunakan fungsi socket.recv() untuk menerima data klien. Selepas menerima data, pelayan boleh memproses data dan mengembalikan respons kepada klien.
import socket # 创建TCP socket对象 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定到指定的IP和端口 sock.bind(('127.0.0.1', 9000)) # 监听客户端连接 sock.listen(5) while True: # 等待客户端连接 client, addr = sock.accept() print(f'客户端 {addr} 已连接') # 处理客户端请求 while True: data = client.recv(1024) if not data: break print(f'从客户端收到数据:{data.decode()}') client.sendall(data) # 关闭客户端连接 client.close()
Selepas pelanggan menerima data respons, ia akan memprosesnya dengan sewajarnya berdasarkan kandungan respons. Begitu juga, dalam pengaturcaraan pelayan Python, anda boleh menggunakan fungsi socket.sendall() untuk menghantar data respons kepada klien.
import socket # 创建TCP socket对象 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定到指定的IP和端口 sock.bind(('127.0.0.1', 9000)) # 监听客户端连接 sock.listen(5) while True: # 等待客户端连接 client, addr = sock.accept() print(f'客户端 {addr} 已连接') # 处理客户端请求 while True: data = client.recv(1024) if not data: break print(f'从客户端收到数据:{data.decode()}') client.sendall(f'收到数据:{data.decode()}'.encode()) # 关闭客户端连接 client.close()
Ringkasan
Pengaturcaraan pelayan Python ialah kemahiran lanjutan yang memerlukan pemahaman yang mendalam tentang protokol rangkaian dan kemahiran pengaturcaraan Python. Dalam artikel ini, kami membincangkan pengetahuan dan kemahiran asas pengaturcaraan pelayan Python, daripada memahami protokol kepada amalan kod, supaya pembaca boleh memahami cara menggunakan Python untuk menulis program pelayan. Adalah disyorkan bahawa pembaca terus mempelajari pengaturcaraan pelayan Python, menguasai lebih banyak kemahiran, dan menerapkannya pada projek sebenar.
Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: daripada pemahaman protokol kepada amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!