Anda di halaman 1dari 5

DINAMIKA INFORMATIKA – Vol I No 1, Maret 2009 ISSN : 2085-3343

PROGRAM SOCKET UNTUK MENGIRIM FILE DENGAN VISUAL BASIC PADA


SISTEM OPERASI WINDOWS

Hersatoto Listiyono
Fakultas Teknologi Informasi, Universitas Stikubank Semarang

Abstrak :
Terjadinya komunikasi antara dua komputer atau lebih memerlukan aturan dan format yang sama
agar komunikasi dapat dimengerti. Aturan ini yang disebut protokol. Penggunaan socket programming
memungkinkan adanya komunikasi antara client dan server.Salah satu contoh sederhana penggunaan
socket programming adalah pembuatan program untuk chatting.Program tersebut sebenarnya merupakan
bentuk aplikasi berupa komunikasi antara client dan server.Ketika seorang user (client) melakukan
koneksi ke chat server,program akan membuka koneksi ke port yang diberikan, sehingga server perlu
membuka socket pada port tersebut dan “mendengarkan” koneksi yang datang. Socket sendiri
merupakan gabungan antara host-address dan port address.Dalam hal ini socket digunakan untuk
komunikasi antara client dan server

Kata kunci : protokol, socket, port

PENDAHULUAN jadi melalui rute yang berbeda-beda, sehingga


hasil yang diterima bisa jadi tidak berurutan.
Socket adalah interface pada jaringan Contohnya jika aplikasi socket pengirim
yang menjadi titik komunikasi antarmesin pada mengirimkan berturut-turut pesan 1, pesan 2,
Internet Protocol, dan tentunya tanpa dan pesan 3, maka aplikasi socket penerima
komunikasi ini, tidak akan ada pertukaran data belum tentu mendapatkan pesan yang
dan informasi jaringan. Socket terdiri dari berurutan dimulai dari pesan 1, pesan 2, dan
elemen-elemen utama sebagai berikut: terakhir pesan 3. Bisa saja pesan 2 terlebih
Protokol, Local IP, Local Port, Remote IP, dulu diterima, menyusul pesan-pesan yang
Remote Port. lain, atau berbagai kemungkinan lainnya.
Sedangkan pemrograman socket adalah Bahkan, dapat terjadi pesan yang dikirimkan
bagaimana memberi instruksi kepada tidak sampai ke penerima karena kegagalan
Operating System untuk dapat menggunakan pengiriman paket data.
komponen/API (Application Programming Tidak demikian halnya dengan stream
Interface) socket dan kemudian socket yang menggunakan TCP. Jenis ini
menggunakannya untuk berkomunikasi antar mengharuskan terjadinya koneksi terlebih
komputer. dahulu, kemudian mengirimkan paket-paket
data secara berurutan, penerima juga dijamin
Protokol akan menerima data dengan urutan yang benar,
Dalam komunikasi antara beberapa dimulai dari data pertama yang dikirimkan
pihak, tentunya harus digunakan kesepakatan hingga data terakhir. TCP dapat menangani
aturan dan format yang sama agar komunikasi data yang hilang, rusak, terpecah, ataupun
dapat dimengerti. Seperti halnya dua orang terduplikasi.
yang menggunakan bahasa yang sama, maka Dari sekilas perbedaan ini, kita dapat
bahasa di sini berfungsi sebagai protokol. menarik kesimpulan bahwa aplikasi socket
Protokol yang digunakan dalam socket dapat yang menggunakan TCP memerlukan
menggunakan TCP ataupun UDP. pertukaran data dua arah yang valid.
Aplikasi socket umumnya terdiri dari Sedangkan, aplikasi socket yang menggunakan
dua kategori berdasarkan pengiriman datanya UDP lebih memprioritaskan pada
yaitu: Datagram socket (menggunakan UDP) pengumpulan data.
yaitu stream socket (menggunakan TCP). Karena itu aplikasi socket dengan TCP sering
Walaupun sama-sama berfungsi sebagai diterapkan untuk aplikasi chat, transfer le,
protokol pertukaran data, terdapat perlakuan ataupun transaksi-transaksi penting.
yang berbeda antara UDP dan TCP. Sedangkan aplikasi socket dengan UDP cocok
UDP tidak memerlukan proses koneksi diterapkan untuk aplikasi monitoring jaringan,
terlebih dahulu untuk dapat mengirimkan data, game online, dan aplikasi-aplikasi broadcast.
paket-paket data yang dikirimkan UDP bisa

Program Socket Untuk Mengirim File Dengan Visual Basic Pada Sistem Operasi Windows 1
DINAMIKA INFORMATIKA – Vol I No 1, Maret 2009 ISSN : 2085-3343

IP address misalkan DALNET adalah: 121.122.204.12


IP Address adalah sebuah alamat virtual maka prosesnya adalah 121.122.204.12:6666
pada setiap computer untuk mengirimkan data Diperlukan jaringan dengan minimal
, contoh dalam kehidupan nyata adalah setiap dua komputer yang saling terkoneksi untuk
kita mengirim surat kita harus menyertakan mencoba pemrograman socket. Tapi dapat juga
alamat pengirim dan alamat tujuan , jika tidak menggunakan satu komputer untuk percobaan,
ada maka paket tidak bisa dikirim karena tidak yaitu dengan memanfaatkan alamat localhost(
jelas alamat pengirim dan alamat penerima. 127.0.0.1) yang mengizinkan dua aplikasi
Contoh IP Address adalah 192.168.10.121 berjalan pada satu mesin komputer dan
berkomunikasi satu sama lain.
Port
Salah satu elemen penting yang Client-server
digunakan dalam aplikasi socket adalah port. Setiap aplikasi di jaringan, transaksinya
Port merupakan sebuah koneksi data virtual didasarkan pada konsep client-server. Sebuah
yang digunakan aplikasi untuk bertukar data server dan sebuah client atau beberapa client
secara langsung. Terdapat banyak port di yang meminta/request pelayanan ke server.
dalam sebuah sistem komputer dengan Fungsi server sebagai pengatur resource yang
fungsinya masing-masing. Sebagai contoh, ada, yang menyediakan pelayanan dengan
dalam mengirim e-mail digunakan service memanfaatkan resource yang untuk kebutuhan
SMTP yang umumnya menggunakan port 25. client. Proses ini (proses client-server)
Sementara service POP3 untuk menerima e- dijalankan pada satu komputer berfungsi
mail menggunakan port 110, port 80 sebagai server dan sebuah atau beberapa
digunakan untuk HTTP, port 443 digunakan komputer berfungsi sebagai client. Hubungan
untuk HTTPS, dan seterusnya. Nomor-nomor tersebut dapat digambarkan sebagai berikut :
port dikategorikan dalam tiga jenis sebagai
berikut: well-known ports, yaitu merupakan
port yang telah digunakan secara internal oleh
sistem Windows, misalnya port untuk koneksi
Internet, service FTP, dan seterusnya. Port
yang telah digunakan ini adalah port 0 sampai
dengan port 1023. Yang kedua adalah gambar 1 Transaksi Client – server
registered ports, yaitu port yang dapat
digunakan dalam aplikasi yang kita buat, Aplikasi client-server menggunakan
range-nya adalah port 1024 hingga port 49151. protokol tranport untuk saling berinteraksi.
Ketiga adalah dynamic/private ports yaitu port Ketika proses interaksi terjadi, suatu aplikasi
49152 sampai dengan port 65535. harus memberikan informasiinformasi secara
detail tentang : informasi tentang apakah dia
Winsock client atau server, pengirim memberikan
Untuk pemrograman aplikasi socket informasi tentang data yang dikirim, penerima
berbasis Windows, maka komponen API yang memberikan informasi tentang dimana data
sering digunakan adalah Winsock (Windows diletakkan, dll.
Socket API) yang mendukung interface standar Antarmuka (interface) antara program
TCP/IP, yang merupakan protokol jaringan aplikasi dengan protokol komunikasi pada
paling popular saat ini. suatu sistem operasi disebut Application
Jadi windows socket adalah perpaduan Program Interface (API). API didefinisikan
IP Address dan port number , contoh bila kita sebagai suatu kumpulan instruksi yang
mengakses http://www.google.com , kita mendukung proses interaksi antara suatu
misalkan google.com memiliki IP Address perangkat lunak dengan suatu protokol yang
66.25.12.25 , sama saja anda mengakses digunakan.
dengan http://www.google.com:80 atau
http://66.25.12.25:80 atau untuk layanan
chatting seperti MIRC menggunakan port
:6666 jadi cara kerja untuk mengakses MIRC
adalah alamatserver:portnumber contoh kita
anggap IP Address untuk alamatserver chating

2 Program Socket Untuk Mengirim File Dengan Visual Basic Pada Sistem Operasi Windows 2
DINAMIKA INFORMATIKA – Vol I No 1, Maret 2009 ISSN : 2085-3343

c. Menerima koneksi yang masuk ke


server dengan perintah
Winsock_ConnectionRequest
d. Memastikan permintaan koneksi
diterima dengan Winsock.Accept
requestID
e. Melakukan komunikasi penerimaan data
gambar 2 Aplikasi Jaringan dengan perintah Winsock.GetData
f. Melakukan komnukasi pengiriman data
Pada saat suatu aplikasi berkomunikasi, dengan Winsock.SendData
awalnya aplikasi membuat socket baru, maka 2. Langkah – langkah dasar di client :
pada aplikasi tersebut akan diberikan nomer a. Meminta koneksi client ke server, yang
yang digunakan sebagai referensi socket. Jika di dalamnya adalah :
ada suatu sistem yang menggunakan nomer - Melakukan pengalamatan ke server
referensi socket tersebut, maka akan terjalin dengan perintah
suatu jaringan komunikasi antar komputer Winsock.RemoteHost atau
sebaik transfer data lokal. Winsock.HostIp.
- Melakukan koneksi port dengan
perintah Winsock.RemotePort.
Server Client - Menghubungi server dengan
Winsock.connect
Server Host addressClient Host address
192.168.1.2 192.168.1.2
b. Melakukan komunikasi penerimaan data
Connection Socket pair dengan perintah Winsock.GetData
(192.168.1.1 : 12345, c. Melakukan komnukasi pengiriman data
Server Socket address 192.168.1.2:12345) Server Socket address dengan Winsock.SendData
192.168.1.1 : 12345 192.168.1.2 : 12345

gambar 3 komunikasi antar komputer


Fungsi-fungsi pemrograman jaringan
dalam visual basic antara lain :
Untuk berkomunikasi antara server dan
1. Winsock.Listen, fungsi ini membuat
client harus tahu alamat kelas IP server apakah
winsock berstatus menunggu status dari
A, B atau C, seperti contoh di atas dengan local port.
menggunakan kelas C, yaitu 192.168.1.1 untuk 2. Winsock.LocalPort, fungsi ini mengunakan
server dan 192.168.1.2 untuk client, begitu
lokal port pada komputer yang
juga nomor port server yang dituju haruslah
bersangkutan untuk jalur komunikasi data,
sama. Disini memakai port 12345.
termasuk permintaan sambungan/ koneksi.
Server
Client 3. Winsock.Connect
LocalPort HostIP
Connection
RemotePort [RemoteHost/HostIP],[RemotePort], fungsi
Listen
Request
Connect ini digunakan untuk koneksi melalui HostIP
Accept
(penggunaan IP Address) sebagai koneksi
ke Host, beserta remoteport computer yang
Senddata GetData
Client/
Server bersangkutan, dimana komputer server
Session
GetData Senddata dalam model status listen atau siap untuk
Close Close
dikoneksi.
4. Winsock.Accept [requestID],fungsi ini
gambar 4 Ilustrasi Interface socket
digunakan untuk menerima koneksi dari
client dalam fungsi
Secara garis besar langkah – langkah
Winsock_ConnectionRequest. Dan perintah
yang dilakukan pada client dan server adalah
berikutnya permintaan diterima harus
sebagai berikut :
dilaksanakan dengan perintah
1. Langkah – langkah dasar di server :
Winsock.Accept requestID.
a. Membuat socket dengan perintah
5. Winsock.SendData [Data],fungsi ini
Winsock.Localport
digunakan untuk mengirim. Data yang
b. Menyiapkan socket untuk menerima
dikirim dapat berbentuk string atau byte
koneksi yang masuk dengan perintah
array, tapi disarankan dalam bentuk string.
Winsock.Listen
6. Winsock.GetData [Data],[Type],[MaxLen],
fungsi ini digunakan untuk menerima

Program Socket Untuk Mengirim File Dengan Visual Basic Pada Sistem Operasi Windows 3
DINAMIKA INFORMATIKA – Vol I No 1, Maret 2009 ISSN : 2085-3343

kiriman data dari Winsock control, dimana


If temp = "OK" Then
Data dapat berbentuk variable, and Type = Wstcp(1).SendData buffer
vbString,vbInteger etc. MaxLen bersifat Else
Lblstatus = "Something wrong"
opsional. Unload Wstcp(1)
7. Winsock.RemoteHostIP [IPAddress], Cmdsend.Enabled = True
fungsi ini digunakan untuk cara koneksi ke End If
End Sub
server dengan mengunakan metode IP
address. Private Sub Wstcp_SendComplete(index As
Integer)
If temp = "OK" Then
Penjelasan Program : Lblstatus = "Send complete"
Untuk Client : temp = ""
Unload Wstcp(1)
Objects yang diperlukan : MSWINSCK.OCX, Cmdsend.Enabled = True
comdlg32.OCX End If
Controls: wsTCP (Winsock), cmdSend End Sub
(CommandButton), dlg (CommonDialog),
cmdBrowse (CommandButton), txtFile Private Sub Wstcp_SendProgress(index As
(TextBox), lblStatus (Label) Integer, ByVal bytesSent As Long, ByVal
bytesRemaining As Long)
If temp = "OK" Then
lBytes = lBytes + bytesSent
Lblstatus = lBytes & " out of " &
UBound(buffer) & " bytes sent"
End If
End Sub

Untuk Server :
Objects yang diperlukan : MSWINSCK.OCX
Controls: Frame1 (Frame), Dir1
gambar 5 Aplikasi client (DirListBox), Drive1
(DriveListBox), cmdRun
(CommandButton), wsTCP (Winsock)
Source Code untuk Client:
Dim buffer() As Byte
Dim lBytes As Long
Dim temp As String

Private Sub cmdBrowse_Click()


dlg.ShowOpen
txtfile = dlg.FileName
End Sub

Private Sub cmdSend_Click()


Cmdsend.Enabled = False
lBytes = 0
ReDim buffer(FileLen(dlg.FileName) -
1)
gambar 6 Aplikasi server
Open dlg.FileName For Binary As 1
Get #1, 1, buffer Source code untuk Server:
Close #1
Load Wstcp(1) Dim lPos As Long
Wstcp(1).RemoteHost = "localhost" Dim bOK As Boolean
Wstcp(1).RemotePort = 25000 Dim fname As String
Wstcp(1).Connect Private Sub cmdRun_Click()
Lblstatus = "Connecting..." If Cmdrun.Caption = "Run" Then
End Sub Cmdrun.Caption = "Stop"
wsTCP(0).LocalPort = 25000
Private Sub Wstcp_Close(index As wsTCP(0).Listen
Integer) Else
Lblstatus = "Connection closed" wsTCP(0).Close
Unload Wstcp(1) Cmdrun.Caption = "Run"
End Sub End If
Private Sub Wstcp_Connect(index As End Sub
Integer) Private Sub Drive1_Change()
Lblstatus = "Connected" Dir1.Path = Drive1.Drive
Wstcp(1).SendData dlg.FileTitle & vbCrLf End Sub
End Sub
Private Sub Wstcp_DataArrival(index As
Integer, ByVal bytesTotal As Long)
Wstcp(1).GetData temp
If InStr(temp, vbCrLf) <> 0 Then temp =
Left(temp, InStr(temp, vbCrLf) - 1)

4 Program Socket Untuk Mengirim File Dengan Visual Basic Pada Sistem Operasi Windows 4
DINAMIKA INFORMATIKA – Vol I No 1, Maret 2009 ISSN : 2085-3343

Private Sub wsTCP_Close(index As lecturer.ukdw.ac.id/anton/download/PEMRO


Integer)
Close #1
GRAMAN%20JARINGAN-
Unload wsTCP(1) Modul6.pdf
bOK = False mti.ugm.ac.id/~yudhistira/ResourceMTI/Tutori
End Sub
al/Cawu01/Computer%20Network/SOC
Private Sub
wsTCP_ConnectionRequest(index As KET.ppt
Integer, ByVal requestID As Long) olm.limnologi.lipi.go.id/masagus/document/in
Load wsTCP(1)
wsTCP(1).Accept requestID dex.php?action=download&filename=
End Sub Pemrograman%20Jaringan%20TCP..
Private Sub wsTCP_DataArrival(index As .pdf
Integer, ByVal bytesTotal As Long)
If Not bOK Then
pk.datacrux.org/module.php?module=userpage
wsTCP(1).GetData fname &menu=104&page_id=5
If InStr(fname, vbCrLf) <> 0 Then fname sidecode.blogspot.com/2008/12/simple-
= Left(fname, InStr(fname, vbCrLf)-1)
bOK = True programing-socket-on-visual.html
If Dir(Dir1.Path & "\" & fname) <> www.opengroup.org/onlinepubs/000095399/fu
"" Then Kill Dir1.Path & "\" & fname
Open Dir1.Path & "\" & fname For
nctions/socket.html
Binary As 1 www.lowtek.com/sockets
lPos = 1 www.troubleshooters.com/codecorn/sockets
wsTCP(1).SendData "OK" & vbCrLf
Else www.troubleshooters.com/codecorn/sockets
Dim buffer() As Byte www.benpinter.net/article.php?story=2004081
wsTCP(1).GetData buffer
Put #1, lPos, buffer
1203905729
lPos = lPos + UBound(buffer) + 1 www.uwo.ca/its/doc/courses/notes/socket/ -
End If 45k
End Sub
www.prasannatech.net/2008/07/socket-
programming-tutorial.html
KESIMPULAN www.kangmaman.com/node/147
1. Aplikasi pada jaringan komputer, www.osix.net/modules/article/?id=25
transaksinya didasarkan pada konsep
client-server.
2. Aplikasi client-server menggunakan
protokol tranport untuk saling berinteraksi.
3. Protokol yang digunakan pada program
pengiriman file ini adalah protokol TCP.
Sdangkan socketnya adalah Winsock
(Windows Socket API) untuk mendukung
interface standar TCP/IP
4. Windows socket adalah perpaduan IP
Address dan port number ,
5. Objects yang diperlukan pada program
pengiriman file adalah MSWINSCK.OCX,
comdlg32.OCX

DAFTAR PUSTAKA

docs.python.org/library/socket.html
forum.vb-bego.com/viewtopic.php
http://www.aswin.web.ugm.ac.id/content/view/
51/2
ilmukomputer.org/2006/09/27/pemrograman-
socket-dengan-c
inf.uajy.ac.id/~kusnadi/wp-
content/uploads/tutorial1.pdf
j3ck3y.wordpress.com/2008/06/05/pemrogra
man-socket-jaringan
java.sun.com/j2se/1.4.2/docs/api/java/net/Sock
et.html

Program Socket Untuk Mengirim File Dengan Visual Basic Pada Sistem Operasi Windows 5

Anda mungkin juga menyukai