7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Python

Pengantar Pemrograman Jaringan dengan Python

Scroll to top
Read Time: 4 mins

Indonesian (Bahasa Indonesia) translation by Hasannudin Amin (you can also view the original English article)

Tutorial ini akan memberikan pengenalan pada socket dengan Python dan bagaimana menggunakan modul socket untuk membangun server HTTP dan klien dengan Python. Ini juga akan mencakup Tornado, pustaka jaringan Python yang ideal untuk polling panjang, WebSockets, dan aplikasi lain yang memerlukan koneksi berumur panjang untuk setiap pengguna.

Apakah Socket itu?

Socket adalah penghubung antara dua aplikasi yang dapat berkomunikasi satu sama lain (baik secara lokal pada satu mesin atau secara jarak jauh antara dua mesin di lokasi terpisah).

Pada dasarnya, socket berfungsi sebagai tautan komunikasi antara dua entitas, yaitu server dan klien. Server akan memberikan informasi yang diminta oleh klien. Misalnya, ketika Anda mengunjungi halaman ini, browser membuat socket dan terhubung ke server.

Modul Socket

Untuk membuat socket, Anda menggunakan fungsi socket.socket(), dan sintaksnya sesederhana:

Berikut uraian argumennya:

  • socket_family: Mewakili keluarga alamat (dan protokol). Ini bisa berupa AF_UNIX atau AF_INET.
  • socket_type: Mewakili jenis soket, dan dapat berupa SOCK_STREAM atau SOCK_DGRAM.
  • protocol: Ini adalah argumen opsional, dan biasanya default ke 0.

Setelah mendapatkan objek socket Anda, Anda kemudian dapat membuat server atau klien sesuai keinginan menggunakan metode yang tersedia di modul socket.

Buat Klien Sederhana

Sebelum memulai, mari kita lihat metode socket klien yang tersedia dengan Python.

  • s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • s.connect(): Memulai koneksi server TCP.

Untuk membuat socket baru, Anda harus mengimpor metode socket kelas socket terlebih dahulu.

Selanjutnya, kita akan membuat soket aliran (TCP) sebagai berikut:

Argumen AF_INET menunjukkan bahwa Anda meminta socket Internet Protocol (IP), khususnya IPv4. Argumen kedua adalah jenis protokol transport SOCK_STREAM untuk soket TCP. Selain itu, Anda juga dapat membuat socket IPv6 dengan menentukan argumen socket AF_INET6.

Tentukan server.

Tentukan port yang ingin kita komunikasikan.

Hubungkan soket ke port tempat server mendengarkan.

Penting untuk dicatat bahwa host dan port harus berupa tuple.

Kirim permintaan data ke server:

Dapatkan respon dari server:

Untuk menutup soket yang terhubung, Anda menggunakan metode tutup:

Di bawah ini adalah kode lengkap untuk Klien / Server.

Bangun Server Sederhana

Sekarang mari kita lihat server Python sederhana. Berikut ini adalah metode server socket yang tersedia dengan Python.

  • s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • s.bind(): Mengikat alamat (nama host, nomor port) ke soket.
  • s.listen(): Mengatur dan memulai pendengar TCP.
  • s.accept(): Menerima koneksi klien TCP.

Kami akan mengikuti langkah-langkah berikut:

  • Buat socket.
  • Ikat soket ke port.
  • Mulai menerima koneksi pada soket.

Di sini adalah program server.

Server sekarang siap untuk koneksi masuk.

Sekarang jalankan program klien dan server di jendela terminal terpisah, sehingga mereka dapat berkomunikasi satu sama lain.

Keluaran Server

Keluaran Klien

Framework Tornado

Framework Tornado adalah salah satu pustaka yang tersedia untuk pemrograman jaringan dengan Python. Di bagian ini, kita akan membahas pustaka ini dan menunjukkan cara menggunakannya untuk membangun WebSockets.

Tornado adalah framework web Python dan pustaka jaringan tidak sinkron. Tornado menggunakan jaringan non-blocking I/O, dan karenanya mampu melakukan scaling ke puluhan ribu koneksi terbuka. Sifat ini membuatnya ideal untuk polling panjang, WebSockets, dan aplikasi lain yang memerlukan koneksi berumur panjang untuk setiap pengguna.

Mari kita membuat Tornado WebSocket sederhana:

Dalam kode di atas:

  • Kami mendefinisikan kelas ApplicationHandler yang berfungsi sebagai pawang untuk permintaan dan mengembalikan respons menggunakan metode write().
  • Metode main adalah entri untuk program.
  • tornado.web.Application membuat basis untuk aplikasi web dan mengambil kumpulan penangan, yaitu ApplicationHandler.
  • Aplikasi mendengarkan pada port 5000, dan klien dapat berkomunikasi dengan aplikasi ini menggunakan port yang sama.
  • tornado.ioloop.IOLoop.instance().start() membuat thread nonblocking untuk aplikasi.

Jika kita menjalankan aplikasi, kita akan mendapatkan hasil seperti yang ditunjukkan pada gambar di bawah.

The results of running our applicationThe results of running our applicationThe results of running our application

Kesimpulan

Sekarang Anda harus memahami dasar-dasar pemrograman socket dengan Python dan bagaimana Anda dapat membangun server dan klien yang sederhana. Jangan ragu untuk bereksperimen dengan membangun klien obrolan Anda sendiri. Untuk informasi lebih lanjut, kunjungi dokumen Python resmi.

Selain itu, jangan ragu untuk melihat apa yang kami miliki untuk dijual dan untuk belajar di Envato Market, dan jangan ragu untuk mengajukan pertanyaan dan memberikan umpan balik Anda yang berharga menggunakan umpan di bawah ini.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.