Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Pemrograman Jaringan Python: Menguasai Socket dan Protokol Lanjutan

Halaman Sebelumnya Halaman Berikutnya  

Python menyediakan dua tingkat akses ke layanan jaringan. Pada tingkat rendah, Anda dapat mengakses dukungan soket dasar dalam sistem operasi yang mendasarinya, yang memungkinkan Anda untuk mengimplementasikan klien dan server untuk protokol berorientasi koneksi dan tanpa koneksi.

Python juga memiliki perpustakaan yang menyediakan akses tingkat tinggi ke protokol jaringan tingkat aplikasi tertentu, seperti FTP, HTTP, dan sebagainya.

Bab ini memberikan pemahaman tentang konsep paling terkenal dalam Jaringan - Pemrograman Soket.

Apa itu Soket?

Soket adalah titik akhir dari saluran komunikasi dua arah. Soket dapat berkomunikasi dalam suatu proses, antara proses di mesin yang sama, atau antara proses di benua yang berbeda.

Soket dapat diimplementasikan melalui sejumlah jenis saluran yang berbeda: soket domain Unix, TCP, UDP, dan sebagainya. Perpustakaan socket menyediakan kelas spesifik untuk menangani transportasi umum serta antarmuka generik untuk menangani sisanya.

Soket memiliki kosakata sendiri −

Sr.No. Istilah & Deskripsi
1

Domain

Famili protokol yang digunakan sebagai mekanisme transportasi. Nilai-nilai ini adalah konstanta seperti AF_INET, PF_INET, PF_UNIX, PF_X25, dan sebagainya.

2

type

Jenis komunikasi antara dua titik akhir, biasanya SOCK_STREAM untuk protokol berorientasi koneksi dan SOCK_DGRAM untuk protokol tanpa koneksi.

3

protocol

Biasanya nol, ini dapat digunakan untuk mengidentifikasi varian protokol dalam domain dan tipe.

4

hostname

Pengidentifikasi antarmuka jaringan −

  • Sebuah string, yang dapat berupa nama host, alamat bintang-belah ketak, atau alamat IPV6 dalam notasi titik dua (dan mungkin titik)

  • Sebuah string "<broadcast>", yang menentukan alamat INADDR_BROADCAST.

  • Sebuah string kosong, yang menentukan INADDR_ANY, atau

  • Sebuah Integer, ditafsirkan sebagai alamat biner dalam urutan byte host.

5

port

Setiap server menunggu klien yang memanggil pada satu atau lebih port. Port dapat berupa nomor port Fixnum, string yang berisi nomor port, atau nama layanan.

Modul socket

Untuk membuat soket, Anda harus menggunakan fungsi socket.socket() yang tersedia dalam modul socket, yang memiliki sintaks umum −

 s = socket.socket (socket_family, socket_type, protocol=0) 

Berikut adalah deskripsi parameter −

Setelah Anda memiliki objek socket, Anda dapat menggunakan fungsi yang diperlukan untuk membuat program klien atau server Anda. Berikut adalah daftar fungsi yang diperlukan −

Metode Soket Server

Sr.No. Metode & Deskripsi
1

s.bind()

Metode ini mengikat alamat (pasangan nama host, nomor port) ke soket.

2

s.listen()

Metode ini mengatur dan memulai TCP listener.

3

s.accept()

Ini secara pasif menerima koneksi klien TCP, menunggu sampai koneksi tiba (blocking).

Metode Soket Klien

Sr.No. Metode & Deskripsi
1

s.connect()

Metode ini secara aktif memulai koneksi server TCP.

Metode Soket Umum

Sr.No. Metode & Deskripsi
1

s.recv()

Metode ini menerima pesan TCP

2

s.send()

Metode ini mengirim pesan TCP

3

s.recvfrom()

Metode ini menerima pesan UDP

4

s.sendto()

Metode ini mengirim pesan UDP

5

s.close()

Metode ini menutup soket

6

socket.gethostname()

Mengembalikan nama host.

Server Sederhana

Untuk menulis server Internet, kita menggunakan fungsi socket yang tersedia dalam modul socket untuk membuat objek soket. Objek soket kemudian digunakan untuk memanggil fungsi lain untuk menyiapkan server soket.

Sekarang panggil fungsi bind(hostname, port) untuk menentukan port untuk layanan Anda pada host yang diberikan.

Selanjutnya, panggil metode accept dari objek yang dikembalikan. Metode ini menunggu sampai klien terhubung ke port yang Anda tentukan, dan kemudian mengembalikan objek koneksi yang mewakili koneksi ke klien tersebut.

 #!/usr/bin/python # Ini adalah file server.py import socket # Impor modul soket s = socket.socket() # Buat objek soket host = socket.gethostname() # Dapatkan nama mesin lokal port = 12345 # Cadangkan port untuk layanan Anda. s.bind((host, port)) # Ikuti ke port s.listen(5) # Sekarang tunggu koneksi klien. while True: c, addr = s.accept() # Buat koneksi dengan klien. print 'Got connection from', addr c.send('Thank you for connecting') c.close() # Tutup koneksi 

Klien Sederhana

Mari kita tulis program klien sangat sederhana yang membuka koneksi ke port 12345 dan host yang diberikan. Ini sangat mudah untuk membuat klien soket menggunakan fungsi modul socket Python.

Fungsi socket.connect(hosname, port ) membuka koneksi TCP ke hostname pada port. Setelah Anda memiliki soket terbuka, Anda dapat membaca darinya seperti objek IO apa pun. Selesai, ingat untuk menutupnya, seperti menutup berkas.

Kode berikut adalah klien sangat sederhana yang terhubung ke host dan port tertentu, membaca data apa pun yang tersedia dari soket, dan kemudian keluar −

 #!/usr/bin/python # Ini adalah file client.py import socket # Impor modul soket s = socket.socket() # Buat objek soket host = socket.gethostname() # Dapatkan nama mesin lokal port = 12345 # Cadangkan port untuk layanan Anda. s.connect((host, port)) print s.recv(1024) s.close() # Tutup soket saat selesai 

Sekarang jalankan server.py di latar belakang dan kemudian jalankan client.py di atas untuk melihat hasilnya.

 # Ini akan memulai server di latar belakang. $ python server.py & # Setelah server dimulai jalankan klien sebagai berikut: $ python client.py 

Ini akan menghasilkan hasil berikut −

 Got connection from ('127.0.0.1', 48437) Thank you for connecting 

Modul Internet Python

Daftar beberapa modul penting dalam pemrograman Jaringan/Internet Python.

Protokol Fungsi Umum Nomor Port Modul Python
HTTP Halaman web 80 httplib, urllib, xmlrpclib
NNTP Berita Usenet 119 nntplib
FTP Transfer berkas 20 ftplib, urllib
SMTP Mengirim email 25 smtplib
POP3 Mengambil email 110 poplib
IMAP4 Mengambil email 143 imaplib
Telnet Baris perintah 23 telnetlib
Gopher Transfer dokumen 70 gopherlib, urllib

Silakan periksa semua perpustakaan yang disebutkan di atas untuk bekerja dengan protokol FTP, SMTP, POP, dan IMAP.

Baca Lebih Lanjut

Ini adalah permulaan cepat dengan Pemrograman Soket. Ini adalah subjek yang luas. Disarankan untuk melalui tautan berikut untuk menemukan lebih banyak detail −


Python

  1. Menguasai Tipe Data Python: Panduan Praktis
  2. Menguasai Operator Python: Panduan Komprehensif
  3. Menguasai Pernyataan Pass Python: Panduan Praktis
  4. Menguasai Argumen Fungsi Python: Posisi, Kata Kunci, dan Parameter Default
  5. Menguasai Kamus Python: Pembuatan, Manipulasi, dan Teknik Lanjutan
  6. Menguasai Pemrograman Berorientasi Objek Python: Kelas, Warisan, Enkapsulasi & Polimorfisme
  7. Menguasai Iterator Python: Cara Kerja dan Membuat Sendiri
  8. Penutupan (Closure) Python Dijelaskan: Cara Fungsi Bertingkat Mengambil Variabel
  9. Menguasai Python datetime: Panduan Praktis Tanggal, Waktu, dan Zona Waktu
  10. Menguasai time.sleep() Python: Best Practices, Multithreading, dan Contoh Dunia Nyata