-->

K.E ^_~ Yang lagi galau ini penawarnya link

Python Socket Programming (Part 1 Socket Client)

Dalam tutorial kali ini saya coba untuk menjelaskan basic dari socket programming pada python. Apa sih 'Socket' itu??sederhananya socket itu sesuatu yang ada di balik komunikasi jaringan komputer :D misal  nih saya coba  buka www.klikedukasi.com di browser. event ini akan membuat socket dan menghubungkan saya ke server  www.klikedukasi.com untuk mengambil halaman dan menampilkannya di browser :D

oke dari pada bingung teori langsung ke code aja heuheuheu
di tutorial kali ini kita bahas tcp socket dahulu.next tutorial kita bahas udp :D

#How to create socket in python

untuk membuat socket pada python kita menggunakan fungsi socket.socket yang ada pada module socket

#!/usr/bin/python
import socket # kita import module socket
import sys
#kita buat AF_INET(addres family ipv 4) dan STREAM (TCP protocol)
try:
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error, msg:
    print 'error code: '+str(msg[0])+' error '+msg[1]
    sys.exit()
print 'Socket berhasil dibuat'

oke kita telah berhasil membuat socket.selanjutnya kita coba melakukan koneksi ke server www.google.com, untuk melakukan koneksi ke server kita membutuhkan ip address dan port yang di tuju. let's back to code!

#!/usr/bin/python
import socket # kita import module socket
import sys
#kita buat AF_INET(addres family ipv 4) dan STREAM (TCP protocol)
try:
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error, msg:
    print 'error code: '+str(msg[0])+' error '+msg[1]
    sys.exit()
print 'Socket berhasil dibuat'

HOST = 'www.google.com'
port = 80
try:
    remote_ip = socket.gethostbyname(HOST) # untuk mendapatkan ip dari www.google.com
except socket.gaierror:
    print 'Hostname tidak ditemukan'
    sys.exit()
#connect ke server kita menggunaka s.connect()
s.connect((remote_ip,port))
print 'Socket connect ke %s di ip %s' %(HOST,remote_ip)

code di atas akan mencoba membuat socket lalu melakukan koneksi ke server dengan port 80, jika kita mencoba dengan port yang lain kita akan mendapatkan pesan error hal ini mengindikasikan port tersebut tidak terbuka (logika ini bisa digunakan untuk membuat port scanner lol :D) kalau sudah begini trus kita mau ngapain??kita coba lakukan pengiriman data. Kita menggunakan fungsi sendall() pada module socket untuk mengirim data.

#!/usr/bin/python
import socket # kita import module socket
import sys
#kita buat AF_INET(addres family ipv 4) dan STREAM (TCP protocol)
try:
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error, msg:
    print 'error code: '+str(msg[0])+' error '+msg[1]
    sys.exit()
print 'Socket berhasil dibuat'

HOST = 'www.google.com'
port = 80
try:
    remote_ip = socket.gethostbyname(HOST) # untuk mendapatkan ip dari www.google.com
except socket.gaierror:
    print 'Hostname tidak ditemukan'
    sys.exit()
#connect ke server kita menggunaka s.connect()
s.connect((remote_ip,port))
print 'Socket connect ke %s di ip %s' %(HOST,remote_ip)

message = 'GET / HTTP/1.1\r\n\r\n'
try:
    s.sendall(message) #pengiriman data
except socket.error:
    print 'Pengiriman gagal'
    sys.exit()
print 'Pengiriman berhasil'

selanjutnya kita coba untuk menerima data

#!/usr/bin/python
import socket # kita import module socket
import sys
#kita buat AF_INET(addres family ipv 4) dan STREAM (TCP protocol)
try:
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error, msg:
    print 'error code: '+str(msg[0])+' error '+msg[1]
    sys.exit()
print 'Socket berhasil dibuat'

HOST = 'www.google.com'
port = 80
try:
    remote_ip = socket.gethostbyname(HOST) # untuk mendapatkan ip dari www.google.com
except socket.gaierror:
    print 'Hostname tidak ditemukan'
    sys.exit()
#connect ke server kita menggunaka s.connect()
s.connect((remote_ip,port))
print 'Socket connect ke %s di ip %s' %(HOST,remote_ip)

message = 'GET / HTTP/1.1\r\n\r\n'
try:
    s.sendall(message) 
except socket.error:
    print 'Pengiriman gagal'
    sys.exit()
print 'Pengiriman berhasil'

reply = s.recv(4096) # fungsi untuk menerima data, kita set jumlah byte yg diperbolehkan adalah 4096

print reply



kalau berhasil akan menghasilkan output pada konsol kurang lebih seperti ini



oke sekian dulu nanti kita lanjut lagi untuk bagian socket servernya,thanks udah mau membaca artikel cupu saya :D

comment 1 komentar

Catatan:
Seluruh komentar yang masuk akan dimoderasi terlebih dahulu. Komentar yang berbau spam, kasar, menghina, seluruhnya yang bersifat menghancurkan bukan membangun tidak akan ditampilkan. Silahkan bertanya dan memberi pendapat dengan sopan dan sesuai aturan.

Anda diperbolehkan mempublikasikan ulang artikel ini, dengan syarat:
1. Mintalah izin dengan cara berkomentar di bawah artikel ini
2. Wajib menyertakan link ke artikel ini dan menyertakan nama penulis

 
© Klikedukasi 2008 - 2013 | Design by Panembahan Satyapradana | 170p3x