Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengaturcaraan pelayan Python: daripada pemahaman protokol kepada amalan

Pengaturcaraan pelayan Python: daripada pemahaman protokol kepada amalan

王林
王林asal
2023-06-18 12:59:301239semak imbas

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:

  1. Protokol TCP/IP: Ia adalah salah satu protokol rangkaian yang paling penting dalam sejarah dan bertanggungjawab untuk pembahagian, penghantaran dan penghalaan data. Protokol TCP/IP digunakan untuk semua penghantaran di Internet, termasuk e-mel, FTP, protokol HTTP, dsb.
  2. Protokol HTTP: Ia adalah salah satu protokol yang paling banyak digunakan di atas protokol TCP/IP dan digunakan untuk penghantaran dokumen di World Wide Web. Protokol HTTP adalah berdasarkan model permintaan-tindak balas Pelanggan menghantar permintaan kepada pelayan, dan pelayan membalas dengan data yang sepadan.
  3. Protokol websocket: Ia adalah protokol sambungan panjang berdasarkan protokol HTTP, yang boleh merealisasikan penghantaran data masa nyata dan tolakan aktif oleh pelayan. Protokol websocket digunakan secara meluas dalam permainan dalam talian, komunikasi masa nyata dan bidang lain.
  4. Protokol FTP: Ia ialah protokol pemindahan fail di atas protokol TCP/IP, digunakan untuk memindahkan fail dari satu hos ke hos yang lain. Protokol FTP menyokong pelbagai mod penghantaran, termasuk mod ASCII dan mod binari.

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.

  1. Buat objek soket

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)
  1. Ikat port dan alamat IP

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)
  1. Terima sambungan pelanggan

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()
  1. Memproses data permintaan

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()
  1. Hantar data respons

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn