0% menganggap dokumen ini bermanfaat (0 suara)
198 tayangan

Socket Programming: TCP Echo Client/Server (Python)

Pada dokumen tersebut membahas tentang percobaan socket programming menggunakan protokol TCP pada bahasa pemrograman Python. Percobaan ini melibatkan pembuatan program client dan server yang dapat berkomunikasi secara dua arah menggunakan protokol TCP. Program client dapat mengirim input ke program server, kemudian server akan mengembalikan input tersebut ke client.

Diunggah oleh

Ujang Supriyadi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
198 tayangan

Socket Programming: TCP Echo Client/Server (Python)

Pada dokumen tersebut membahas tentang percobaan socket programming menggunakan protokol TCP pada bahasa pemrograman Python. Percobaan ini melibatkan pembuatan program client dan server yang dapat berkomunikasi secara dua arah menggunakan protokol TCP. Program client dapat mengirim input ke program server, kemudian server akan mengembalikan input tersebut ke client.

Diunggah oleh

Ujang Supriyadi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

.

PRAKTIKUM JARINGAN KOMPUTER LANJUTAN

Judul : Socket Programming: TCP Echo


Client/Server (Python)
Percobaan :6
Nama : Ujang Supriyadi
NRP : 2210191007
Dosen : Maretha Ruswiansari
Tanggal : 30 Oktober 2021
Socket Programming: TCP Echo Client/Server
(Python)
I. Tujuan
1. Mahasiswa dapat menjelaskan konsep jaringan berbasis client-server
2. Mahasiswa dapat menjelaskan konsep pemrograman socket berbasis TCP
3. Mahasiswa dapat menjelaskan cara kerja program TCP echo client/server

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.

Pada gambar 1 menunjukkan bahwa di sisi server terdapat beberapa socket


API yang digunakan agar dapat berkomunikasi pada jaringan. Socket API pada
TCP server yang bertugas untuk membuat listening socket yaitu: socket(),
bind(), listen(), accept(). Proses listening socket merupakan saat dimana server
menunggu koneksi dari client. Jadi, saat client menghubungkan ke server
dengan connect(), hal ini mengawali proses connection establishment.
Kemudian server akan menerima koneksi dari client melalui accept(), dan
mekanisme three-way handshake selesai. Selanjutnya, client dan server dapat
saling berkomunikasi atau bertukar data menggunakan send() dan recv(). Pada
praktikum kali ini, kita akan mempelajari socket programming, dimana program
yang akan dibuat, memungkinkan client dan server berkomunikasi. Program
echo server dan echo client menggunakan protokol TCP. Server akan membalas
atau mengulang kembali data yang dikirim oleh client.
III. Prosedur Percobaan
1. Buatlah program server.py

2. Buatlah program client.py


3. Jalankan program server.py terlebih dulu. Tampilkan hasil pengujian anda. (Catatan :
port tersebut adalah port server, dimana client nantinya akan menggunakan port tersebut
agar terhubung ke server, gunakan non privileged ports yaitu port > 1023)

4. Jalankan program client.py secara terpisah terminal atau command prompt dari program
echo server. Tampilkan hasil pengujian anda.

Sedangkan pada server akan tampil seperti berikut:

Beberapa saat kemudian akan tampil tulisan seperti berikut

5. Pada pengujian di prosedur 3 dan 4 menggunakan localhost, anda dapat juga


menggunakan host yang berbeda dengan menyesuaikan IP address tujuan.
6. Buatlah program input client/server, dimana anda bisa memberikan inputan melalui
program client kemudian server akan membalas dengan mengirimkan ulang ke client
apapun yang anda kirimkan sebelumnya. Program client dapat membaca inputan dari
keyboard dan anda dapat mengirimkan data ke server beberapa kali selama koneksi dari
client belum diakhiri.
7. Lampirkan program echo client/server yang anda buat untuk prosedur no. 6 pada
laporan anda. Tampilkan hasil setelah anda menjalankan program yang anda buat
tersebut.
import socket
import sys
import argparse

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)

while amount_received < amount_expected:


data=sock.recv(16)
amount_received += len(data)
print("Received: %s" %data.decode('utf-8'))
except socket.error as e:
print("Socket error: %s" %str(e))
except Exception as e:
print("Other error: %s" %str(e))
finally:
print("Closing connection to the server")
sock.close()

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

Kemudian akan tampil perintah untuk memasukkan inputan

Setelah mengisi input dan diakhiri menekan enter

Sedangkan pada server akan tampil seperti berikut:

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

Secara garis besar socket programming adalah pemrograman yang menggunakan


socket. Socket ini semacam terowongan/tunnel yang bisa dipakai untuk
komunikasi/pertukaran arah secara bolak-balik. Dengan socket programming, komunikasi
dapat terjalin antara bahasa pemrograman yang berbeda, antara tingkatan user yang
berbeda, bahkan antar komputer yang berbeda atau gabungan ketiganya. Dalam socket
programming dibagi menjadi client dan server yang didefinisikan sebagai suatu arsitektur
jaringan komputer dimana perangkat client melakukan proses meminta data, dan server
yang memiliki tugas untuk memberikan respon berupa data terhadap request tersebut.
Perangkat client biasanya berupa perangkat komputer dengan aplikasi software jaringan
yang telah terinstal guna untuk meminta dan menerima data melalui jaringan.

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.

Anda mungkin juga menyukai