Socket Programming: TCP Echo Client/Server (Python)
Socket Programming: TCP Echo Client/Server (Python)
II. Pendahuluan
Transmission Control Protocol (TCP) merupakan protokol pada transport
layer berbasis connection-oriented. TCP menjamin realibitas pengiriman data.
Selain itu, TCP memiliki mekanisme three-way handshake sebelum client-
server dapat saling mengirimkan data. Pada gambar 1 berikut menunjukkan alur
komunikasi client-server mengggunakan TCP.
4. Jalankan program client.py secara terpisah terminal atau command prompt dari program
echo server. Tampilkan hasil pengujian anda.
host='localhost'
data_payload=2048
def echo_client_input(port):
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_address=(host,port)
print("Connecting to %s port %s" %server_address)
sock.connect(server_address)
try:
message=input("Ketikkan input: ")
print("Sending %s" %message)
sock.sendall(message.encode('utf-8'))
amount_received=0
amount_expected=len(message)
if __name__=='__main__':
parser=argparse.ArgumentParser(description='Socket Server Example')
parser.add_argument('--
port',action="store",dest="port",type=int,required=True)
given_args=parser.parse_args()
port=given_args.port
echo_client_input(port)
Output
8. Analisa program echo client/server pada p rosedur 1 dan 2 serta pada tugas di prosedur.
Jelaskan bagaimana penerapan mekanisme TCP pada socket programming dan
perintah-perintah yang digunakan pada program socket yang telah dibuat.
ANALISA
Di dalam program server proses yang dilakukan antara lain diawali dengan membuat
socket dengan perintah socket(). Selanjutnya mengikatkan socket kepada sebuah alamat
network dengan perintah bind(). Kemudian menyiapkan socket untuk menerima koneksi
yang masuk dengan perintah listen(). Untuk menerima koneksi yang masuk ke server
dengan perintah accept()Melakukan komunikasi (mengirim dan menerima data), dengan
menggunakan perintah recv() dan sendall( ). Dan untuk menampilkan hasil pada terminal
menggunakan perintah echo(). Di dalam program client langkah–langkah yang dilakukan
sebagai berikut dimulai dengan membuka koneksi client ke server, yang di dalamnya adalah
membuat socket dengan perintah socket(), kemudian melakukan pengalamatan ke server
selanjutnya menghubungi server dengan connect(). Setelah itu melakukan komunikasi
(mengirim dan menerima data), dengan menggunakan perintah recv() dan sendall(). Dan
terakhir menutup hubungan dengan perintah close(). Untuk menampilkan hasil pada
terminal menggunakan perintah echo(). Dalam koneksi di socket, diperlukan variable yang
dipakai untuk menyimpan address client dan server. Address ini akan dipakai pada waktu
melakukan connect(), bind() dan accept(). Dikarenakan agar bisa terkirim secara benar
maka alamat pengirim dan penerima diperlukan tertulis dengan jelas dan lengkap.
Agar dapat saling terhubung dan dapat terknoneksi dengan baik antara server dan client
maka diperlukan proses kerja yang benar. Dalam hal tersebut program server harus berjalan
terlebih dahulu. Di sisi server disediakan sebuah socket, yang disebut welcoming socket
yang fungsinya untuk mendeteksi adanya permintaan koneksi dari sisi client. Di sisi client
terdapat client socket. Jika ingin menghubungi server, maka melalui client socket-nya,
client membuat inisialisai koneksi ke welcoming socket milik server, dengan mode three-
way handshake. Setelah welcoming socket menerima inisialisasi koneksi dari client socket,
aplikasi server akan membuat connection socket di sisi server. Dengan connection socket
ini, client socket dan connection socket berinteraksi satu sama lain untuk mengirim dan
menerima data. Client membaca data yang dikirim oleh server dari client socket-nya.
Kemudian menampilkan data tersebut di monitor. TCP mengharuskan terjadinya koneksi
terlebih dahulu, kemudian mengirimkan paket-paket data secara berurutan, penerima juga
dijamin akan menerima data dengan urutan yang benar, dimulai dari data pertama yang
dikirimkan hingga data terakhir.
KESIMPULAN
Berdasarkan praktikum dan analisa yang telah dilakukan maka dapat diambil
kesimpulan bahwa:
• Socket programming adalah pemrograman yang menggunakan socket untuk
komunikasi atau pertukaran arah secara bolak-balik.
• Jaringan client server merupakan suatu arsitektur jaringan komputer dimana perangkat
• client melakukan proses meminta data, dan server yang memiliki tugas untuk
memberikan respon berupa data terhadap request tersebut.
• TCP memerlukan pertukaran data dua arah yang valid
• TCP dapat menangani data yang hilang, rusak, terpecah, ataupun terduplikasi.
TUGAS
1. Jelaskan beberapa keunggulan protokol TCP
Jawab:
a. Bisa digunakan untuk menghubungkan meisn-mesin dengan perangkat lunak, serta
bersifat open protocol standart
b. Memiliki tingkat konsistensi yang tinggi, sehingga banyak penggunanya
c. TCP/IP berkembang dengan menggunakan standar protokol terbuka, maksudnya
TCP/IP ini tersedia secara luas. Efek dari standar yang baru itu membuat semua orang
bisa mendevelop software mereka sendiri sehinga dapat berkomunikasi dengan protokol
ini. Hal ini tentu membuat pemakaian TCP/IP meluas dengan sangat cepat, terutama
dari sisi pengadopsian oleh berbagai OS dan aplikasi jaringan.
d. TCP/IP tidak bergantung terhadap hardware (tidak terikat pada jenis perangkat keras
khusus) atau OS tertentu, hal ini membuat TCP/IP available untuk menyatukan
bermacam macam jaringan. Contoh: Ethernet, dial-up, dll.
e. TCP/IP menggunakan teknik pengalamatan yang unik dalam skala besar, bisa dibilang
Global. Sehingga memungkinkan komputer dapat mengidentidifikasikan secara unik
komputer yang lain didalam seluruh jaringan, walau sebesar Worlwide Internet pun bisa
diidentifikasi. Setiap komputer yang tersambung dengan jaringan TCP/IP (Internet)
akan memiliki address yang hanya dimiliki olehnya.
2. Jelaskan server socket method dan client socket method pada socket programming
mengggunakan Python
Jawab:
Socket adalah mekanisme komunikasi untuk pertukaran data antar aplikasi yang terdapat di
dalam sebuah mesin maupun beda mesin dan pertukaran ini terjadi pada sebuah jaringan
komputer. Socket biasa digunakan untuk pemrograman berbasis client – server yang dapat
menggunakan socket TCP/IP atau socket UDP.
a. Socket Server: digunakan untuk menangani seluruh request yang dikirimkan dari socket
client.
b. Socket Client: sebuah penghubung antara dua host, yang dapat dibangun dengan tujuh
dasar operasi.1
Terdapat beberapa method, yaitu:
• socket() = method yang digunakan untuk menkonfigurasi koneksi, parameter
AF_INET merujuk ke alamat ipv4 dan SOCK_STREAM menandakan bahwa koneksi
berorientasi pada protokol TCP.
• setsockopt() = method yang digunakan untuk mengontrol socket behaviour.
• bind() = method yang memungkinkan Anda untuk melampirkan objek ke suatu fungsi.
• listen() = method yang digunakan untuk mendapatkan koneksi masuk dari client.
• accept() = method yang digunakan untuk menerima koneksi dari client.
• send() = method yang digunakan untuk mengirimkan pesan ke socket lain (client).
• recv() = digunakan untuk menerima pesan dari soket, dan dapat digunakan untuk
menerima data pada soket yang berorientasi koneksi atau tidak.
3. Jelaskan yang anda pahami mengenai mekanisme three-way handshake.
Jawab:
Three-way-handshake yang juga dikenal sebagai jabat tangan TCP adalah metode yang
digunakan dalam jaringan TCP / IP untuk membuat koneksi antara host / client dan server
lokal. Ini adalah metode tiga langkah yang membutuhkan baik klien dan server untuk
bertukar SYN dan ACK (pengakuan) paket sebelum komunikasi data aktual dimulai.
Metode ini dirancang sehingga ketika dua komputer mencoba memulai komunikasi akan
dilakukan negosiasi parameter jaringan TCP terlebih dahulu sehingga kedua komputer
dapat memulai dan bernegosiasi terpisah TCP koneksi socket pada waktu yang sama.