Media Belajar Bahasa Pemrograman | by APPKEY

PythonTutorial Python 34 : Mengenal Socket Programming pada Python

Tutorial Python 34 : Mengenal Socket Programming pada Python

-

Last Updated on July 1, 2022 by

Socket programming adalah cara menghubungkan perangkat dalam jaringan demi mempermudah komunikasi atau transfer data. Bagaimana cara memprogram koneksi socket di Python?

Akses masuk ke layanan jaringan di Python terdiri atas dua tingkatan yang berbeda. Pada tingkat yang lebih rendah, Anda bisa mengakses sistem basic socket yang mendasari operasi kode Python.

Metode ini juga memungkinkan implementasi perangkat klien dengan server untuk menciptakan sambungan protokol berbasis koneksi (connection-oriented) ataupun tidak (connectionless).

Python juga memiliki pustaka yang menyediakan akses ke tingkat yang lebih tinggi. Metode ini biasanya digunakan untuk mengakses protokol jaringan pada aplikasi tertentu, seperti FTP, HTTP, dan lain-lain.

Mari simak ulasan Python basic berikut ini untuk mengetahui lebih dalam seputar socket programming.

Apa Itu Socket Programming?

Socket adalah titik akhir dari saluran komunikasi dua arah. Setiap socket dalam Python dapat berkomunikasi mengirimkan data baik dalam satu arus proses; dua atau lebih proses yang berlainan dalam mesin yang sama; atau antar proses pemrograman di mesin yang berseberangan.

Socket pun bisa diimplementasikan pada banyak tipe channel sekaligus, seperti Unix domain sockets, UDP, TCP, dan sejenisnya. Perpustakaan socket memuat banyak kategori khusus untuk menangani beragam tipe komunikasi, serta sistem antarmuka general bagi tugas-tugas lain.

Socket memiliki kamus kode dengan arti khusus seperti yang tertera di bawah ini:

No Istilah Socket dan Artinya
1 Domain

Grup protokol yang berperan dalam mekanisme pengiriman data. Nilai-nilai dalam kelompok ini berupa konstanta seperti AF_INET, PF_UNIX, PF_INET, PF_X25 dan lain-lain.

2 type

Jenis komunikasi antara dua titik akhir tunnel, biasanya ada SOCK_STREAM yang digunakan untuk protokol berorientasi koneksi; dan SOCK_DGRAM untuk protokol tanpa koneksi.

3 protocol

Biasanya berupa data nol. Protocol dapat digunakan untuk mengidentifikasi varian protokol dalam beragam domain dan jenis.

4 hostname

Merupakan penanda antarmuka sebuah jaringan yang terdiri atas:

·         String: dapat berupa nama host, alamat quad bertitik, atau alamat IPV6 dalam notasi titik dua atau satu (dot).

·         String “<broadcast>”: berfungsi mengidentifikasi alamat INADDR_BROADCAST.

·         Zero-length string: mengidentifikasi INADDR_ANY.

·         Integer: ditafsirkan sebagai alamat biner dalam urutan byte host.

5 port

Setiap server dapat menangkap sinyal klien saat memanggil satu atau beberapa port sekaligus. Port dapat berupa nomor port Fixnum, string yang berisi nomor port, atau nama layanan.

Python Basic : Modul Socket Programming

Untuk membuat sebuah socket, Anda harus menggunakan fungsi socket.socket() yang tersedia di modul. Adapun susunan sintaksis umum socket programming adalah:

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

Keterangan dari setiap elemen di atas adalah:

  • socket_family: gunakan antara AF_UNIX atau AF_INET seperti yang sudah dijelaskan sebelumnya.
  • socket_type: gunakan SOCK_STREAM atau SOCK_DGRAM.
  • protocol: biasanya bagian ini dibiarkan kosong atau bernilai default

Setelah membuat objek socket, kini Anda bisa menggunakan fungsi yang dibutuhkan untuk membuat program klien atau server.  Berikut ini adalah daftar fungsi-fungsi tersebut:

Artikel Terkait  Tutorial Python 18 : Apa Fungsi Lambda Python?

Metode Server Socket Programming

No Metode Server Socket dan Definisinya
1 s.bind()

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

2 s.listen()

Metode ini digunakan untuk menyiapkan dan memulai TCP listener.

3 s.accept()

Metode ini secara pasif menerima koneksi dari klien TCP, lalu menunggu sampai koneksi tiba (memblokir).

 

Metode Programming Client Socket

No Metode Client Socket dan Definisinya
1 s.connect()

Metode ini memulai koneksi server TCP secara aktif.

 

Metode General Socket

No Metode General Socket dan Definisinya
1 s.recv()

Metode yang digunakan untuk menerima pesan TCP.

2 s.send()

Metode yang digunakan untuk mentransmisikan pesan TCP.

3 s.recvfrom()

Metode yang digunakan untuk menerima pesan UDP.

4 s.sendto()

Metode yang digunakan untuk mentransmisikan pesan UDP.

5 s.close()

Metode untuk menutup socket.

6 socket.gethostname()

Metode untuk mengembalikan nama host.

Contoh Simple Server

Gunakan fungsi socket yang tersedia di modul pembuatan objek socket untuk menulis server Internet sederhana (simple server). Objek socket digunakan untuk memanggil fungsi lain yang mengatur kinerja server.

Kemudian, jalankan fungsi bind(hostname, port) untuk menentukan port layanan Anda yang tertera di host.

Lalu panggil metode accept dari objek yang dikembalikan. Metode ini akan menunggu hingga klien tersambung ke port yang telah ditentukan, lalu mengembalikan objek koneksi yang mewakili sambungan ke klien. Contoh kode pemrogramannya adalah sebagai berikut:

#!/usr/bin/python           # Ini adalah server.py file.

import socket               # Mengimpor socket module.

s = socket.socket()         # Membuat socket object.
host = socket.gethostname() # Mendapatkan local machine name.
port = 12345                # Pesan port untuk layanan Anda.
s.bind((host, port))        # Mengikat ke port.

s.listen(5)                 # Menunggu koneksi client.
while True:
   c, addr = s.accept()     # Menyetabilkan koneksi dengan client.
   print 'Got connection from', addr
   c.send('Thank you for connecting')
   c.close()                # Menutup koneksi.

Contoh Simple Client

Setelah sukses dengan pemrograman server, mari lanjutkan dengan menulis pemrograman klien (client) yang sederhana memakai modul socket Python. Kode berikut ini ditujukan untuk membuka koneksi ke port 12345 dan host yang telah ditentukan.

Kode socket.connect(hosname, port) membuka koneksi TCP ke hostname pada port. Setelah soket terbuka, Anda dapat membacanya seperti objek IO lainnya. Jika sudah, ingatlah untuk menutupnya sebagaimana Anda akan menutup file biasa.

Kode berikut merupakan contoh klien sederhana yang terhubung ke host dan port tertentu, bisa membaca data pun yang tersedia di soket dan menutupnya:

#!/usr/bin/python           # Ini adalah client.py file.

import socket               # Mengimpor socket module.

s = socket.socket()         # Membuat socket object.
host = socket.gethostname() # Mendapatkan local machine name.
port = 12345                # Pesan port untuk layanan Anda.

s.connect((host, port))
print s.recv(1024)
s.close()                     # Menutup socket sesudah selesai.

Sekarang jalankan server.py ini di latar belakang, lalu jalankan di atas client.py untuk melihat hasilnya.

# Kode untuk menjalankan server di latar belakang:
$ python server.py & 

# Kode klien yang dijalankan begitu server aktif:
$ python client.py

Hasil akhirnya akan muncul seperti ini:

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

Modul Programming Internet Python

Inilah beberapa modul penting yang digunakan dalam pemrograman internet/network di Python:

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

Catatan penting: sangat dianjurkan untuk mengecek semua rincian pustaka di atas ketika Anda bekerja dengan protokol SMTP, FTP, IMAP dan POP.

Demikianlah pembahasan Python basic kali ini seputar socket programming. Semoga ulasan di atas bermanfaat menambah wawasan Anda, ya.

Yuk cari tahu lebih banyak tips dan tutorial programming gratis hanya di CODEKEY. Baca sekarang artikel-artikelnya hanya di https://codekey.id/. Sampai bertemu lagi!


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial PHP 22 : Cara Membuat Redirect PHP dengan Cepat dan Mudah

Jika Anda melakukan browsing di browser kesayangan Anda, mungkin Anda pernah melihat link yang berisikan “php redirect” atau yang...

Tutorial PHP 23 : Cara Membuat Messages Alert PHP

Alert box atau alert messages digunakan di situs web untuk menampilkan pesan peringatan kepada pengguna bahwa mereka telah memasukkan...

Tutorial PHP 2 : Cara Install PHP, Langkah Awal Belajar PHP

PHP adalah bahasa pemrograman gratis dan open source. Secara teknis tidak perlu menginstal PHP: sebagian besar host web dan...

Tutorial Python 9 : Cara Membuat Looping Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial HTML/CSS 23 : Cara Membuat Form Sederhana dengan HTML

Form memiliki peran yang sangat krusial bagi website atau aplikasi untuk menjaga sistem keamanannya. Form HTML digunakan untuk mengumpulkan...

Tutorial SQL 8 : Constraint SQL, Bagaimana Fungsi dan Penggunaannya?

Pada artikel sebelumnya Anda telah mempelajari tentang wildcard SQL, pada artikel kali ini kami akan menjelaskan tentang constraint SQL. Jika...

Tutorial Javascript 8 : Array Javascript, Panduan Lengkap Cara Membuatnya

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial SQL 20 : Mari Pelajari Cara Menggunakan Fungsi GROUP by SQL

Pada pembahasan seri Tutorial SQL ke- 20 ini, Codekey akan membahas tentang GROUP BY yang merupakan statement di dalam...

Tutorial Python 7 : Python String Format dan Cara Mudahnya

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya