Rumah >pembangunan bahagian belakang >Tutorial Python >Konsep Python Lanjutan - Rangkaian dengan Python

Konsep Python Lanjutan - Rangkaian dengan Python

Linda Hamilton
Linda Hamiltonasal
2024-12-09 15:28:11883semak imbas

Pernahkah anda terfikir bagaimana peranti anda disambungkan melalui Internet? Atau bagaimana perniagaan berjaya berkongsi maklumat merentas wilayah dengan lancar? Semua ini dicapai menggunakan rangkaian komputer sebagai sebahagian daripada strategi perniagaan. Ia membolehkan kami mewujudkan komunikasi, bekerjasama dan berkongsi sumber antara aplikasi dan peranti yang berbeza dalam rangkaian melalui Internet. Kini, anda boleh menghubungi atau berkongsi perkara dengan rakan anda atau sesiapa sahaja dengan hanya satu klik, terima kasih kepada penyepaduan rangkaian dengan aplikasi perisian, dan pelbagai teknologi lain. Dalam Python, rangkaian ialah konsep asas yang membolehkan interaksi antara peranti dan sumber luaran. Python menyertakan banyak modul terbina dalam yang menyokong keupayaan rangkaian, seperti `soket` untuk rangkaian umum dan `permintaan` untuk komunikasi HTTP.
Oleh itu, dalam artikel ini, kita akan membincangkan rangkaian daripada konsep asasnya kepada konsep lanjutan dalam Python menggunakan contoh praktikal.

Pengenalan kepada Konsep Rangkaian

1. Rangkaian dan Kepentingannya Dalam Sistem Teragih

Rangkaian melibatkan penyambungan berbilang komputer dan peranti melalui kabel berwayar atau rangkaian wayarles untuk bertukar-tukar data dan berkongsi sumber melalui Internet. Ia membolehkan komunikasi antara pelbagai peranti. Seperti yang kita ketahui, sistem teragih ialah sistem di mana sejumlah besar pelanggan, peranti perkakasan dan proses disambungkan untuk berkongsi sumber dan berkomunikasi. Oleh itu, rangkaian dan sistem teragih saling berkaitan dengan ketara. Mereka menyediakan infrastruktur yang memudahkan penyimpanan, perkongsian sumber dan komunikasi elektronik untuk meningkatkan kecekapan dan produktiviti sistem.

2. Konsep Rangkaian Utama

Beberapa konsep rangkaian utama yang kami gunakan dalam kehidupan seharian kami adalah seperti berikut:

2.1. Alamat IP

Alamat IP secara unik mengenal pasti peranti anda pada rangkaian. Jika anda mempunyai peranti yang bersambung ke Internet, ia mesti mempunyai alamat IP. IP bermaksud Internet protocol. Ia ialah nombor unik atau pengecam untuk komputer atau peranti dalam rangkaian. Setiap peranti akan mempunyai nombor unik yang menjadikannya berbeza daripada peranti lain dalam rangkaian. Contohnya:

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Nota:

Alamat IP ialah rentetan nombor unik yang dipisahkan dengan noktah yang mengenal pasti setiap komputer yang menggunakan protokol Internet untuk berkomunikasi melalui rangkaian.

2.2. Pelabuhan

Port ialah pengecam berangka yang digunakan dalam rangkaian untuk menentukan perkhidmatan atau proses tertentu pada peranti. Berbeza dengan alamat IP, yang mengenal pasti lokasi peranti pada rangkaian, port membenarkan berbilang perkhidmatan beroperasi serentak pada peranti yang sama. Ia memastikan bahawa data diarahkan ke aplikasi atau proses yang betul. Port ini adalah julat dari 0 hingga 65535, mempunyai skala tertentu dikhaskan untuk protokol tertentu. Contohnya:

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

2.3. Protokol

Protokol rangkaian ialah satu set prosedur dan amalan untuk komunikasi antara peranti rangkaian. Ia mentakrifkan cara data diformat, dihantar dan diterima. Contohnya termasuk HTTP, FTP, SMTP dan DNS. Protokol boleh beroperasi pada pelbagai lapisan dalam model OSI, seperti lapisan aplikasi (HTTP), lapisan pengangkutan (TCP) dan lapisan rangkaian (IP).

2.4. Soket

Soket ialah titik akhir rangkaian untuk menghantar atau menerima data merentas berbilang peranti. Ia melibatkan gandingan alamat IP dan nombor port. Soket boleh terdiri daripada dua jenis utama: SOCK_STREAM untuk sambungan TCP, yang berorientasikan sambungan dan SOCK_DGRAM untuk sambungan UDP, yang tanpa sambungan. Soket membolehkan pelaksanaan pelbagai perkhidmatan rangkaian, seperti pelayan web dan e-mel.

3. Model OSI dan Tindanan TCP/IP

Model tertentu ditakrifkan yang memberitahu kami cara menyambungkan peranti atau komputer kami melalui Internet supaya mereka boleh berinteraksi dan berkomunikasi antara satu sama lain. Terdapat dua model utama untuk menentukan rangkaian. Model OSI atau tindanan TCP/IP. Mari kita dapatkan gambaran keseluruhan setiap satu daripadanya secara ringkas:

Advanced Python Concepts - Networking with Python

3.1. Tindanan TCP/IP

Timbunan TCP/IP ialah satu set protokol komunikasi yang digunakan untuk menyambungkan peranti rangkaian di Internet, memastikan penghantaran data dan komunikasi yang boleh dipercayai. Ia adalah satu set prosedur tentang cara komputer boleh berinteraksi dan cara mereka bentuk sistem tersebut. Untuk memahami fungsi, ia dibahagikan kepada lima lapisan. Setiap lapisan mempunyai kerjanya, dan ini ialah lapisan Aplikasi, Pengangkutan, Akses Rangkaian, Pautan Data dan Fizikal. Tindanan TCP/IP menyediakan pelaksanaan praktikal rangkaian di dunia nyata berbeza dengan model OSI, yang memberikan pemahaman teoritis komunikasi rangkaian. Di samping itu, lapisan Pengangkutan menyediakan kemudahan untuk penghantaran data yang boleh dipercayai, dan Akses Rangkaian memastikan alamat IP dan penghalaan paket data yang betul, dan sebagainya.

3.2. Model OSI

Sama seperti TCP/IP, model OSI juga digunakan untuk mereka bentuk rangkaian merentas berbilang peranti. Ia adalah rangka kerja konseptual yang terdiri daripada satu set prosedur untuk memahami dan melaksanakan protokol rangkaian dalam tujuh lapisan yang berbeza. Ia berkongsi lapisan yang sama dengan TCP/IP, dengan lapisan tambahan. Ini termasuk: Aplikasi, Pembentangan, Sesi, Pengangkutan, Akses Rangkaian, Pautan Data dan Lapisan Fizikal. Secara khusus, perbezaan utama antara OSI dan TCP/IP ialah dua lapisan tambahan yang dibentuk ke dalam lapisan aplikasi TCP/IP.

Asas Pengaturcaraan Soket

1. Pengaturcaraan Soket Sebagai Asas Rangkaian Dalam Python

Rangkaian melibatkan penyambungan dua atau lebih peranti supaya komunikasi boleh dilakukan di dalamnya. Dalam Python, pengaturcaraan soket ialah mekanisme penciptaan rangkaian asas dan teras. Untuk pengaturcaraan soket, kita perlu mengimport modul soket. Menggunakan modul soket, pembangun boleh menjana, mengkonfigurasi dan mengurus soket untuk komunikasi TCP dan UDP. Modul ini mempunyai banyak kaedah terbina dalam yang diperlukan untuk mencipta soket dan membantu mereka bergaul antara satu sama lain. Beberapa kaedah penting yang digunakan ialah soket.soket, yang digunakan untuk mencipta soket. Soket ini digunakan pada kedua-dua sisi klien dan pelayan. Selain itu, untuk menerima komunikasi, kami menggunakan kaedah socket.accept.

Nota

TCP bermaksud protokol kawalan penghantaran, yang merupakan protokol berorientasikan sambungan yang memastikan pemindahan data yang boleh dipercayai. UDP ialah protokol datagram pengguna, protokol tanpa sambungan yang mengutamakan kelajuan berbanding kebolehpercayaan.

2. Soket Sebagai Titik Akhir Komunikasi Antara Mesin

Soket ialah titik akhir rangkaian yang digunakan untuk menghantar dan menerima data. Secara lalai, satu rangkaian mempunyai dua soket, satu untuk setiap peranti komunikasi. Soket ini menggabungkan alamat IP dan nombor port. Di samping itu, satu peranti boleh mempunyai soket N berdasarkan nombor port yang digunakan. Port yang berbeza tersedia untuk jenis protokol yang berbeza; contohnya, HTTP menggunakan port 80. Melalui mekanisme titik akhir ini, pembangun boleh memastikan pertukaran data yang tepat dan boleh dipercayai dalam pelbagai senario rangkaian.

3. Contoh: Mencipta dan Menggunakan Soket untuk Komunikasi Rangkaian Asas

Sekarang kita telah memahami apa itu pengaturcaraan soket kerana ia merupakan asas pengaturcaraan Python, mari beralih ke editor kod dan lihat bagaimana kita boleh menciptanya. Kita mesti mencipta dua fail berbeza untuk sisi klien dan pelayan untuk mewujudkan sambungan.

server.py

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Advanced Python Concepts - Networking with Python

client.py

HTTP uses port 80  
HTTPS uses port 443

Advanced Python Concepts - Networking with Python

Bekerja dengan TCP/IP

1. Protokol Kawalan Penghantaran (TCP) Dan Peranannya dalam Komunikasi

TCP, juga dikenali sebagai protokol kawalan penghantaran, ialah protokol lapisan pengangkutan dalam model TCP/IP. Ia terdiri daripada satu set protokol dan prosedur yang menentukan cara menghantar data melalui Internet. Biasanya, apabila data dihantar sebagai fail, ia dipecahkan kepada paket individu. Apabila paket tiba di destinasi dengan nombor unik untuk setiap paket. Kita boleh mengumpulkan mereka dengannya. Di samping itu, jika beberapa paket hilang, TCP memastikan bahawa ia dihantar semula. Inilah sebabnya kami memanggil TCP sebagai protokol yang boleh dipercayai untuk komunikasi kerana ia mewujudkan komunikasi melalui proses jabat tangan, mengakui data yang diterima dan menghantar semula paket yang hilang dengan mengekalkan susunan paket yang betul dan memastikan integriti dan penghantaran data.

2. Contoh: Mencipta Aplikasi Pelanggan dan Pelayan TCP Dalam Python

Pelayan ialah perisian yang menunggu permintaan pelanggan, dan pelanggan meminta sumber daripada pelayan. Pengaturcaraan soket kebanyakannya dilaksanakan untuk seni bina pelayan-pelanggan. Di sini, kami membincangkan contoh mencipta klien dan pelayan di mana klien menghantar mesej, dan pelayan membalas mesej tersebut dan memberikan respons yang sesuai untuk permintaan itu menggunakan modul soket dengan TCP. Marilah kami mereka bentuk kedua-dua model pelanggan dan pelayan.

Advanced Python Concepts - Networking with Python

server.py

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 

Advanced Python Concepts - Networking with Python
client.py

HTTP uses port 80  
HTTPS uses port 443

Advanced Python Concepts - Networking with Python

3. Membina Aplikasi Sembang Mudah Menggunakan Soket TCP

Mari kita cipta aplikasi sembang ringkas dalam Python menggunakan soket TCP, di mana pelayan mendengar arahan masuk dan pelanggan menyambung ke pelayan itu untuk menghantar dan menerima mesej. Kami akan membina ruang sembang menggunakan modul terbina dalam Python iaitu soket. Jadi, kita perlu menulis kod untuk setiap sisi seperti klien dan pelayan, secara berasingan:

server.py

import socket #Import library

#Create a socket object and then define two arguments first one specifies the IP address
#and second indicate the use of a TCP socket.
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Prepare to receive connections by binding it to the IP address and port
soc.bind((socket.gethostname(), 1042))
#Listen to the connection
soc.listen(5)

while True:
     #Set client socket and address and make a connection
     clt, addr = soc.accept() 
     print(f"Connection Established to address {addr}")
     msg = "Message Received and the message is ->"
     clt.send(bytes(msg + "Socket Programming in Python", "utf-8"))

Advanced Python Concepts - Networking with Python

client.py

import socket #Importing the module

#Create a socket object and then define two arguments first one specifies the IP address
#and second for indicating the use of a TCP socket.
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Set the connection with the port number and hostname
soc.connect((socket.gethostname(), 1042))
#Set the bytes of the message how much you want to receive
msg = soc.recv(100)
print(msg.decode("utf-8"))

Advanced Python Concepts - Networking with Python

Membungkus

Rangkaian ialah konsep penting dalam sains komputer dan pengaturcaraan. Ia menyelesaikan kebanyakan masalah manusia, sama ada anda bekerja di pejabat anda atau berkongsi fail dengan pasukan anda. Sebagai alternatif, hubungi saudara dari negara lain. Ringkasnya, kami memberi tumpuan kepada pengenalan asas rangkaian yang kukuh menggunakan Python. Kami mempelajari topik penting kawalan dan model rangkaian, seni bina klien dan pelayan serta contoh praktikal menggunakan pustaka soket. Perpustakaan ini memastikan penubuhan rangkaian yang selamat dan boleh dipercayai untuk sistem teragih. Teruskan mencuba dan membina kemahiran ini untuk meningkatkan lagi kemahiran anda dalam pengaturcaraan rangkaian. Semoga panduan ini bermanfaat. Terima kasih kerana membaca. Selamat Mengekod!

Rujukan

Rangkaian dalam Python

Pustaka soket

Atas ialah kandungan terperinci Konsep Python Lanjutan - Rangkaian dengan Python. 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