Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengaturcaraan pelayan Python: soket rangkaian dijelaskan secara terperinci

Pengaturcaraan pelayan Python: soket rangkaian dijelaskan secara terperinci

王林
王林asal
2023-06-18 19:00:09977semak imbas

Pengaturcaraan rangkaian Python boleh dilaksanakan menggunakan soket Soket ialah komponen asas komunikasi rangkaian dan antara muka pengaturcaraan rangkaian komputer universal. Pustaka soket dalam Python menyediakan antara muka yang ringkas namun berkuasa untuk menyokong pemindahan data, yang memberikan sokongan yang baik untuk pengaturcaraan pelayan Python.

Soket ialah dua titik akhir pautan komunikasi dan digunakan untuk melaksanakan komunikasi rangkaian Ia menyediakan antara muka penghantaran data antara komputer. Dalam Python, pemegang Socket boleh menjadi permintaan sambungan pelanggan atau permintaan mendengar pelayan boleh digunakan untuk kedua-dua protokol TCP dan UDP.

Dalam Python, soket dibahagikan kepada dua jenis:

  1. Soket TCP

Soket TCP menyediakan kaedah penghantaran sambungan sambungan apabila menyambung ke pelayan Proses sambungan adalah proses "jabat tangan tiga hala". Protokol TCP akan mengesan beberapa siri isu seperti sama ada penghantaran selesai, penghantaran semula jika penghantaran gagal, dan sebagainya. Kecekapan penghantaran soket TCP adalah rendah, tetapi penghantaran data boleh dipercayai.

  1. Soket UDP

Soket UDP menyediakan kaedah "tanpa sambungan", yang tidak memerlukan "jabat tangan tiga hala", berbanding soket TCP Kecekapan antara muka adalah tinggi , tetapi kebolehpercayaan penghantaran adalah rendah.

Dalam Python, apabila menggunakan soket, sambungan perlu diwujudkan terlebih dahulu Selepas sambungan selesai, data perlu dihantar Selepas penghantaran selesai, sambungan perlu ditutup. Berikut ialah pelaksanaan soket bahagian pelayan dalam Python:

import socket

HOST = '127.0.0.1' #本地ip
PORT = 8888 #端口号

#创建一个套接字对象
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#将套接字与本地ip及其端口号绑定
server.bind((HOST, PORT))

#开始监听传入的连接
server.listen()

#不断接收客户端的连接,如果有新的连接加入,就创建新的连接线程进行处理
while True:
    #获取客户端请求
    conn, addr = server.accept()
    print('Connected by', addr)

    #接收客户端发来的数据并回应
    data = conn.recv(1024)
    print(data)
    conn.sendall(data)

    #关闭连接
    conn.close()

Di atas ialah contoh kod mudah untuk pelaksanaan soket bahagian pelayan Python Berikut ialah pengenalan ringkas kepada fungsi dan kaedah pelaksanaan setiap bahagian daripada kod tersebut.

Pertama, anda perlu mengimport soket perpustakaan soket Python, dan kemudian mengisytiharkan alamat IP tempatan dan nombor port pelayan Anda boleh menetapkannya sendiri kemudian, selagi ia tidak bercanggah dengan perkhidmatan lain yang dibuka pada komputer.

Dalam kod, pelayan objek soket kosong pertama kali diwujudkan Fungsi socket.socket digunakan untuk melengkapkan ini Parameter pertama AF_INET mewakili protokol IPv4, dan parameter kedua SOCK_STREAM mewakili penggunaan TCP. protokol.

Seterusnya, gunakan fungsi bind untuk mengikat pelayan soket ke IP tempatan dan nombor portnya yang sepadan Di sini, borang tuple digunakan, dan nombor IP tempatan dan port dimasukkan sebagai parameter ke alamat IP.

Selepas itu, mulakan mendengar pelayan soket dan gunakan fungsi dengar. Dalam contoh ini, pelayan akan menerima maklumat soket yang sepadan dengan IP tempatan dan nombor port, menerima permintaan sambungan dan mengembalikan mesej kejayaan sambungan.

Akhir sekali, gunakan gelung untuk memantau permintaan pelanggan secara berterusan, dapatkan satu permintaan setiap kali, cetak alamat IP pelanggan yang disambungkan, kemudian terima data yang dihantar oleh pelanggan, cetaknya dan hantar tindak balas. Selepas menyelesaikan pemindahan data, tutup sambungan.

Menggunakan soket Soket untuk pengaturcaraan rangkaian dalam Python akan memberi anda tahap kebebasan yang lebih tinggi, dan anda boleh dengan mudah dan fleksibel melaksanakan pelbagai aplikasi berasaskan komunikasi rangkaian Berikut ialah pengenalan ringkas kepada soket sisi pelayan Python Pelaksanaannya kaedah, saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: soket rangkaian dijelaskan secara terperinci. 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