Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan modul soket untuk mencipta klien dan pelayan dalam Python 2.x

Cara menggunakan modul soket untuk mencipta klien dan pelayan dalam Python 2.x

WBOY
WBOYasal
2023-07-31 20:51:231637semak imbas

Python ialah bahasa pengaturcaraan yang digunakan secara meluas yang ringkas dan mudah dibaca. Antaranya, modul soket adalah modul penting untuk pengaturcaraan rangkaian dalam Python Ia boleh membuat klien dan pelayan dengan mudah dan melaksanakan komunikasi rangkaian. Artikel ini akan memperkenalkan secara terperinci cara menggunakan modul soket untuk mencipta klien dan pelayan dalam Python 2.x, dan disertakan dengan contoh kod.

1. Gambaran keseluruhan modul soket
Modul soket ialah salah satu perpustakaan standard Python Ia menyediakan fungsi dan kelas berkaitan rangkaian yang boleh digunakan untuk mencipta pelbagai jenis soket. Melalui soket, komunikasi antara komputer yang berbeza boleh dicapai, termasuk permintaan dan respons, pemindahan fail, dsb.

Dalam Python 2.x, modul soket terutamanya menyediakan dua jenis soket: soket strim (soket.SOCK_STREAM) dan soket datagram (soket.SOCK_DGRAM). Soket aliran boleh digunakan untuk mewujudkan komunikasi berasaskan sambungan yang boleh dipercayai, manakala soket datagram digunakan untuk komunikasi tanpa sambungan.

2. Cipta pelanggan

  1. Import modul soket
    Pertama, anda perlu mengimport modul soket Python untuk menggunakan fungsi dan kelas di dalamnya.
import socket
  1. Buat soket
    Sebelum mencipta pelanggan, anda perlu menggunakan fungsi socket.socket() untuk mencipta soket. Fungsi ini menerima dua parameter Parameter pertama ialah Keluarga Alamat, yang menentukan jenis soket (seperti IPv4 atau IPv6 Parameter kedua ialah jenis soket (soket aliran atau antara muka datagram).
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  1. Sambung ke pelayan
    Dengan menggunakan kaedah connect() soket klien, sambungan boleh diwujudkan dengan pelayan. Kaedah ini menerima satu parameter, alamat IP pelayan dan nombor port, dalam bentuk tuple. Selepas sambungan berjaya, soket baharu akan dikembalikan untuk komunikasi.
server_address = ('192.168.0.100', 8080)
client_socket.connect(server_address)
  1. Hantar dan terima data
    Hantar data ke pelayan dengan menggunakan kaedah hantar() soket klien, dan terima data yang dikembalikan oleh pelayan menggunakan kaedah recv(). Kaedah send() menerima parameter rentetan, manakala kaedah recv() menerima parameter integer untuk menentukan panjang maksimum data yang akan diterima.
data = 'Hello, server!'
client_socket.send(data)
response = client_socket.recv(1024)
print response
  1. Tutup soket
    Selepas komunikasi klien dan pelayan selesai, soket hendaklah ditutup untuk melepaskan sumber. Soket boleh ditutup dengan menggunakan kaedah close() soket klien.
client_socket.close()

3 Buat pelayan

  1. Import modul soket
    Sama seperti mencipta klien, anda perlu mengimport modul soket terlebih dahulu.
import socket
  1. Buat soket
    Gunakan fungsi socket.socket() untuk mencipta soket, nyatakan keluarga alamat dan jenis soket. Pada masa yang sama, soket perlu disediakan supaya boleh diguna semula supaya ia boleh dimulakan semula serta-merta selepas pelayan dimatikan secara tidak dijangka.
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  1. Ikat alamat pelayan
    Dengan menggunakan kaedah bind() soket pelayan, alamat pelayan boleh diikat ke soket. Kaedah ini menerima satu parameter, tuple yang mengandungi alamat IP hos pelayan dan nombor port yang didengarinya.
server_address = ('', 8080)
server_socket.bind(server_address)
  1. Dengar untuk permintaan sambungan
    Soket pelayan perlu menggunakan kaedah listen() untuk mula mendengar permintaan sambungan. Kaedah ini menerima parameter yang menentukan bilangan maksimum sambungan yang boleh dikendalikan oleh pelayan pada masa yang sama.
server_socket.listen(5)
  1. Terima sambungan dan kendalikan permintaan
    Dengan menggunakan kaedah accept() soket pelayan, anda boleh menerima sambungan daripada pelanggan. Kaedah ini akan mengembalikan soket baharu untuk komunikasi dengan pelanggan. Semasa komunikasi dengan pelanggan, anda boleh menggunakan kaedah recv() untuk menerima data yang dihantar oleh klien, dan kaedah hantar() untuk menghantar data respons.
client_socket, client_address = server_socket.accept()
data = client_socket.recv(1024)
print data
response = 'Hello, client!'
client_socket.send(response)
  1. Tutup Soket
    Selepas pelayan selesai semua pemprosesan, soket hendaklah ditutup. Soket boleh ditutup dengan menggunakan kaedah close() soket pelayan.
server_socket.close()

Dengan langkah di atas, anda boleh membuat klien dan pelayan dengan mudah menggunakan modul soket dalam Python 2.x. Kod tersebut boleh diubah suai dan dioptimumkan dengan sewajarnya mengikut keperluan sebenar untuk mencapai komunikasi rangkaian yang lebih kompleks dan cekap.

Atas ialah kandungan terperinci Cara menggunakan modul soket untuk mencipta klien dan pelayan dalam Python 2.x. 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