Harapan:
Berikut adalah beberapa poin penting yang dapat dipelajari dari artikel ini
- Mengirim beberapa teks menggunakan program python yang menggunakan protokol UDP.
- Menerima beberapa teks menggunakan program python yang menggunakan protokol UDP.
- Periksa paket UDP di Wireshark.
- Pelajari tentang kode python untuk mengirim dan menerima paket UDP.
Diagram Pengaturan Umum:
Sistem A dan B harus bisa saling ping.
Asumsi atau Batasan:
- Kedua sistem harus memiliki Linux dengan Ubuntu. Kode mungkin atau mungkin tidak berfungsi pada sistem operasi lain seperti Windows10, MAC dll.
- Kedua sistem harus memiliki python versi 3. Kode ini mungkin atau mungkin tidak berfungsi pada python 2.versi 7.
Catatan: Anda dapat memeriksa referensi untuk mencoba Kirim dan Terima paket UDP melalui Linux CLI sebelum menggunakan file python untuk melakukan tugas yang sama.
File Python:
Ada dua file python server.py dan klien.py. file server dan file klien masing-masing harus ada di sistem Server dan sistem Klien.
Server.py
soket imporsistem impor
jika len(sys.argv) == 3:
# Dapatkan "alamat IP Server" dan juga "nomor port" dari
argumen 1 dan argumen 2
ip = sys.argv[1]
port = int(sys.argv[2])
lain:
print("Jalankan seperti: server python3.py
keluar(1)
# Buat soket UDP
s = soket.soket (soket).AF_INET, soket.SOCK_DGRAM)
# Ikat soket ke port
server_address = (ip, port)
s.mengikat (server_address)
print("Lakukan Ctrl+c untuk keluar dari program !!")
sementara Benar:
print("####### Server mendengarkan #######")
data, alamat = s.recvfrom(4096)
print("\n\n2. Server menerima: ", data.dekode('utf-8'), "\n\n")
send_data = input("Ketik beberapa teks untuk dikirim => ")
s.kirim ke(kirim_data.encode('utf-8'), alamat)
print("\n\n1. Server terkirim : ", send_data,"\n\n")
Klien.py
soket imporsistem impor
jika len(sys.argv) == 3:
# Dapatkan "alamat IP Server" dan juga "nomor port" dari argumen 1 dan argumen 2
ip = sys.argv[1]
port = int(sys.argv[2])
lain:
print("Jalankan seperti: klien python3.py
keluar(1)
# Buat soket untuk server
s = soket.soket (soket).AF_INET, soket.SOCK_DGRAM, 0)
print("Lakukan Ctrl+c untuk keluar dari program !!")
# Mari mengirim data melalui protokol UDP
sementara Benar:
send_data = input("Ketik beberapa teks untuk dikirim =>");
s.kirim ke(kirim_data.encode('utf-8'), (ip, port))
print("\n\n1. Klien Terkirim : ", send_data, "\n\n")
data, alamat = s.recvfrom(4096)
print("\n\n2. Klien menerima : ", data.dekode('utf-8'), "\n\n")
#tutup soketnya
s.Menutup()
Kirim/Terima paket UDP:
Mari kita ambil contoh seperti kita akan mengirim paket UDP dari Sistem A ke Sistem B. Jadi, dalam konsep server-klien, kita harus menjalankan server di sisi Sistem B dan klien di sisi Sistem A.
Kami juga memiliki alamat IP yang valid.
Sistem A IP: 192.168.1.6Sistem B IP: 192.168.1.102
Sekarang tidak seperti Kirim dan Terima paket UDP melalui Linux CLI kami akan menjalankan server.py dalam Sistem, B [192.168.1.102] dan kemudian kita akan lari klien.py di Sistem A [192.168.1.6].
Cara menjalankan server.py pada tahun 192.168.1.102?
Berikut adalah perintah untuk menjalankan server.py
server $python3.py 192.168.1.102 4444Ini screenshotnya
Di sini ada dua argumen untuk program python. 1st argumennya adalah alamat IP server itu sendiri, ini dia 192.168.1.102 dan 2dan argumen adalah port server mana yang akan mendengarkan, di sini kami telah memilih 4444.
Bagaimana menjalankan klien.py pada tahun 192.168.1.6?
Berikut adalah perintah untuk menjalankan klien.py
$python3 klien.py 192.168.1.102 4444Ini screenshotnya
Di sini ada dua argumen untuk program python. 1st argumennya adalah alamat IP server, ini dia 192.168.1.102 dan 2dan argumen adalah port tempat server berjalan. Untuk contoh kita adalah 4444.
Kirim atau terima beberapa teks:
Sekarang seperti yang Anda lihat, kami siap untuk berkomunikasi antara dua sistem. Tapi kita harus mulai dari klien dulu. Mari kita ketik sesuatu di klien dan lihat apakah itu sampai ke server atau tidak.
Kirim Data dari klien: “Saya dari Klien”
Klien formulir tangkapan layar:
Sekarang pesan klien ini harus datang ke server. Ini screenshot servernya server.
Sekarang kita dapat melihat di sisi server juga kita memiliki opsi untuk mengirim sesuatu ke klien. Mari kita coba itu.
Kirim Data dari klien: “Saya dari Server”
Tangkapan layar server:
Dan ini adalah tangkapan layar di sisi klien.
Sekarang ini akan terus berlanjut hingga kita menghentikan program python menggunakan Ctrl+c.
Periksa paket UDP di Wireshark:
Sekarang kami telah melakukan beberapa komunikasi tetapi bagaimana kami mengetahui bahwa UDP digunakan untuk mengirim atau menerima paket-paket itu?. Jadi, kami dapat memeriksa tangkapan di Wireshark.
Mari kita lihat paketnya ketika klien [192.168.1.6] mengirim data [“Saya dari Klien”] ke server [192.168.1.6].
Penjelasan kode:
Untuk penjelasan kode python dasar lihat "Python Socket File Transfer Send" di bagian referensi.
Kami hanya akan menjelaskan kode baris penting untuk file python Klien dan Server. Ada komentar yang berguna di dalam kode klien dan server.
Penjelasan kode klien:
jika len(sys.argv) == 3:Baris di atas diperlukan untuk memeriksa apakah pengguna telah melewati argumen wajib yang diperlukan. Atau program akan keluar. Pemeriksaan yang sama ada di program server.
s = soket.soket (soket).AF_INET, soket.SOCK_DGRAM, 0)Baris di atas adalah untuk membuat server soket dengan UDP [SOCK_DGRAM] protokol. Kode yang sama ada di server.py.
sementara Benar:Untuk menjalankan program dalam infinite loop hingga pengguna melakukan Ctrl+c. Kode yang sama ada di server.py.
s.kirim ke(kirim_data.encode('utf-8'), (ip, port))Untuk mengirim data untuk disebutkan aku p dan Pelabuhan jumlah.
data, alamat = s.recvfrom(4096)Untuk menerima data apa pun yang datang dari server. Kode yang sama ada di server.py.
Penjelasan kode server:
s.kirim ke(kirim_data.encode('utf-8'), alamat)Kirim data ke alamat klien.
Kesimpulan:
Kami dapat mengirim atau menerima data UDP menggunakan program python. Secara internal menggunakan mekanisme klien server.
Referensi:
Untuk memahami TCP: https://linuxhint.com/tcp_packet_capture_analysis/
Untuk memahami UDP: https://linuxhint.com/udp_wireshark_analysis/
Kirim dan Terima paket UDP melalui Linux CLI:
https://linuxhint.com/send_receive_udp_packets_linux_cli/
Transfer File Soket Python Kirim:
https://linuxhint.com/python_socket_file_transfer_send/