• Tidak ada hasil yang ditemukan

BAB 4 PROTOKOL TCP UDP - REMOTE

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PROTOKOL TCP UDP - REMOTE"

Copied!
14
0
0

Teks penuh

(1)

Bab 4 Protokol TCP UDP - Remote Hal. 1

BAB 4

PROTOKOL TCP UDP - REMOTE

Daftar Isi:

Pendahuluan ... 1

UDP Remote ... 2

UDP Server ... 2

Komunikasi Program client server UDP – Remote ... 4

UDP Client ... 7

TCP Remote ... 8

TCP Server dengan console ... 10

P EN DAHU LU AN

Dalam modul ini akan dijelaskan secara garis besar apa yang akan kita pelajari, yaitu:

• Menggabungkan modul sebelumnya yaitu system windows. Terdapat dua aplikasi yaitu aplikasi client dan aplikasi server. Aplikasi client akan mengirimkan pesan, misalkan cpu, maka aplikasi client menerima pesan tersebut dan menjalankan program untuk mendapatkan sistem informasi CPU di komputer server yang selanjutnya hasil tersebut akan dikirimkan ke aplikasi client, dan aplikasi client menampilkan informasi cpu komputer server.

• Aplikasi yang akan diterapkan yaitu aplikasi TCP Server dan aplikasi TCP Cient. Serta UDP Server dan UDP Client.

• Pengujian system windows seperti yan dilakukan modul sebelumnya yaitu mendapatkan username, system cpu, memori, proses dan lainnya.

(2)

Bab 4 Protokol TCP UDP - Remote Hal. 2 UDP REM OTE

UDP SERVER

Dalam aplikasi UDP Server, tampilan form seperti pada gambar dibawah ini dengan properti: • Label

• List Box

Gambar 1. 1

Dengan mempelajari program sebelumnya sistem windows, maka beberapa library kita daftarkan untuk mengenal perintah perintah baris program nantinya, dan tambahan untuk socket UDP maka beberapa tambahan library seperti System.NET dan System.Net.Sockets serta System.Threading. lengkapnya seperti dibawah ini:

• Imports System.Threading • Imports System.Net • Imports System.Net.Sockets • Imports System.Text • Imports System • Imports System.Drawing • Imports Microsoft.Win32

(3)

Bab 4 Protokol TCP UDP - Remote Hal. 3

• Imports System.Diagnostics

Untuk mengenali pesan yang dikirimkan oleh UDP Client kemudian UDP Server melakukan fungsi program yang didefinisikan. Karena umumnya user dapat mengetikan apa pun, yang diinginkan. Kemudian kita set jika user mengetikan sesuatu..maka sesuatu itu akan diproses oleh server. Kita listkan apa yang akan diketikan oleh user, yaitu:

• User: untuk mendapatkan username server

• Memori: untuk mendapatkan alokasi memori yang dimiliki server • R: untuk mendapatkan resolusi layar server

• Reg: untuk mendapatkan nama prosesor dan detail dari CPU server.

Prosedur yang digunakan VB.NET menggunakan thread, sehingga kita tidak bisa secara langsung menggunakan objek yang digunakan, misalkan dalam program kita menggunakan listbox.items.add (“pesan”) ke proses pengiriman server ke client. VB.NET tidak dapat menggunakan thread dari listbox secara berulang-ulang.

Untuk mensiasati hal tersebut, maka digunakan sebuah prosedur, ketika listbox digunakan maka listbox akan di hapus atau direstart kembali untuk dapat digunakan. Jika di program pada baris dibawah ini untuk memanggil kembali thread listbox

Private Sub UpdateLblStatus(ByVal tempStr As String) ListBox1.Items.Add(tempStr)

End Sub

Dan untuk melepas /merestart listbox anda dapat melihat fungsi dari

Private Sub UpdateLblStatusThreadSafe(ByVal tempStr As String)

Dan variabel Private Delegate Sub updateLblStatus_dlgt(ByVal tempStr As String) digunakan untuk variabel global dalam sebuah form.

Port yang akan digunakan adalah 8080. Anda dapat mengganti dengan angka yang lain, yaitu dari 1024 sampai 65.000. dengan catatan nantinya aplikasi client menginputkan data ip server dan port server yang sesuai. Anda dapat lihat baris program Dim udpClient100 As New UdpClient(8080) untuk menset port yang digunakan di prosedur serverThread. Dan untuk mengaktifkan UDP server baris program dilakukan di

(4)

Bab 4 Protokol TCP UDP - Remote Hal. 4 Private Sub udpserver_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load saat program dijalankan oleh server maka program UDP langsung aktif.

Ketika aplikasi server menerima koneksi dari aplikasi client. Maka aplikasi server menunggu selalu aplikasi client untuk pesan yang akan diterima dan melakukan proses sesuai dengan identifikasi yang kita telah setting sebelumnya. Jika anda perhatikan dibaris prosedur Public Sub serverThread(), maka terdapat perintah while true untuk menyatakan apakah ada pesan masuk atau tidak.

Untuk proses penerimaan pesan dari client ke server. Dalam VB.NET proses mendapatkan pesan. Aplikasi server akan menerima dalam bentuk byte. Proses byte ini akan ditampung kedalam sebuah varibel, kemudian untuk menampilkan di terjemahkan kedalam bentuk string. Contoh kode program yang digunakan:

receiveBytes = udpClient100.Receive(RemoteIpEndPoint)

Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)

a = RemoteIpEndPoint.Address.ToString() + " Pesan: " +

returnData.ToString

UpdateLblStatusThreadSafe(a)

KOMUN I KAS I P ROG RAM C LIEN T S ERVE R U DP – REMOT E

UDP Client mengirimkan pesan “user” ke UDP Server, maka UDP Server menampilkan user yang digunakan di komputer UDP Server.

UDP Client mengirimkan pesan “memori” ke UDP Server, maka UDP Server menampilkan memori yang digunakan di komputer UDP Server.

UDP Client mengirimkan pesan “r” ke UDP Server, maka UDP Server menampilkan resolusi r yang digunakan di komputer UDP Server.

UDP Client mengirimkan pesan “reg” ke UDP Server, maka UDP Server menampilkan identifikasi, prosesor yang digunakan di komputer UDP Server.

(5)

Bab 4 Protokol TCP UDP - Remote Hal. 5 Kode Program UDP Server

Kode Program UDP Server

Imports System.Threading Imports System.Net Imports System.Net.Sockets Imports System.Text Imports System Imports System.Drawing Imports Microsoft.Win32 Imports System.Diagnostics Public Class udpserver

Private Delegate Sub updateLblStatus_dlgt(ByVal tempStr As String)

Private Sub udpserver_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim thdUDPServer = New Thread(New ThreadStart(AddressOf _ serverThread))

thdUDPServer.Start() End Sub

Public Sub serverThread()

Dim udpClient100 As New UdpClient(8080) Dim a, banding, c As String

Dim bnds As Rectangle = My.Computer.Screen.Bounds Dim m_LM As RegistryKey

Dim m_HW As RegistryKey Dim m_Des As RegistryKey Dim m_System As RegistryKey Dim m_CPU As RegistryKey Dim m_Info As RegistryKey m_LM = Registry.LocalMachine m_HW = m_LM.OpenSubKey("HARDWARE") m_Des = m_HW.OpenSubKey("DESCRIPTION") m_System = m_Des.OpenSubKey("SYSTEM") m_CPU = m_System.OpenSubKey("CentralProcessor") m_Info = m_CPU.OpenSubKey("0") While True

Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0) Dim receiveBytes As Byte()

(6)

Bab 4 Protokol TCP UDP - Remote Hal. 6 Dim returnData As String =

Encoding.ASCII.GetString(receiveBytes)a =

RemoteIpEndPoint.Address.ToString() + " Pesan: " + returnData.ToString

banding = returnData.ToString UpdateLblStatusThreadSafe(a) If (banding = "user") Then

c = System.Environment.UserName UpdateLblStatusThreadSafe(c) End If

If (banding = "memori") Then c = GC.GetTotalMemory(True) UpdateLblStatusThreadSafe(c) End If

If (banding = "r") Then

c = "Resolusi Layar: " & bnds.Width & " by " & bnds.Height

UpdateLblStatusThreadSafe(c) End If

If (banding = "reg") Then

c = "Prosesor =" + m_Info.GetValue("VendorIdentifier") UpdateLblStatusThreadSafe(c)

c = "Prosesor Name =" + Info.GetValue("ProcessorNameString") UpdateLblStatusThreadSafe(c) c = "Identifier = " + m_Info.GetValue("Identifier") UpdateLblStatusThreadSafe(c) c = m_Info.GetValue("~Mhz") & "MHz" UpdateLblStatusThreadSafe(c) End If End While End Sub

Private Sub UpdateLblStatusThreadSafe(ByVal tempStr As String) Dim updateLblStatus_obj As updateLblStatus_dlgt

If ListBox1.InvokeRequired Then

updateLblStatus_obj = New updateLblStatus_dlgt(AddressOf UpdateLblStatusThreadSafe)

If Not updateLblStatus_obj Is Nothing Then

(7)

Bab 4 Protokol TCP UDP - Remote Hal. 7 End If Else Call UpdateLblStatus(tempStr) End If End Sub

Private Sub UpdateLblStatus(ByVal tempStr As String) ListBox1.Items.Add(tempStr)

End Sub

End Class

UDP CLIENT

Tampilan UDP Client, ketika aplikasi ditampilkan user menginput alamat ip server, dan menginput pesan yang akan dikirimkan. Seperti tampil dibawah ini

Gambar 1. 2

Kode program

Imports System.Net

(8)

Bab 4 Protokol TCP UDP - Remote Hal. 8 Imports System.Text

Imports System.IO

Public Class udpclient1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim udpclient200 As New UdpClient

udpclient200.Connect(TextBox1.Text, 8080)

Dim sendBytes As Byte()

sendBytes = Encoding.ASCII.GetBytes(TextBox2.Text) udpclient200.Send(sendBytes, sendBytes.Length)

End Sub

End Class

Contoh Hasil Pengujian

T C P RE MOT E

Pertama kali kita lakukan desain untuk TCP Client seperti pada gambar 1.3, user mengetikan input alamat server port, proses koneksi, jika selesai maka client mengirimkan pesan ke server, dan server akan mengirimkan balik pesan dari server.

(9)

Bab 4 Protokol TCP UDP - Remote Hal. 9 Gambar 1. 3

Kode program yang digunakan untuk Kode Program TCP Client. Kode Program TCP Client Imports System.Net.Sockets

Imports System.Text Public Class Form3

Dim clientSocket As New System.Net.Sockets.TcpClient()

Dim serverStream As NetworkStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim serverStream As NetworkStream = clientSocket.GetStream()

Dim a As String

a = TextBox1.Text + "$"

Dim outStream As Byte() =

System.Text.Encoding.ASCII.GetBytes(a)

serverStream.Write(outStream, 0, outStream.Length) serverStream.Flush()

' ListBox1.Items.Clear()

Dim inStream(10024) As Byte

serverStream.Read(inStream, 0,

CInt(clientSocket.ReceiveBufferSize))

(10)

Bab 4 Protokol TCP UDP - Remote Hal. 10 System.Text.Encoding.ASCII.GetString(inStream)

msg("Data from Server : " + returndata)

End Sub

Sub msg(ByVal mesg As String)

'ListBox1.Items.Clear()

ListBox1.Items.Add(mesg)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

clientSocket.Connect(TextBox2.Text, TextBox3.Text) Label1.Text = "Client Socket Program - Server Connected ..."

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

clientSocket.Close()

End Sub

End Class

T C P S ERVE R DEN GAN C ON S OLE

Selanjutnya kita membuat TCP Server, untuk hal ini tampilan server, tidak ada form dalam server ini, aplikasi berbentuk console.

Gambar 1. 4

(11)

Bab 4 Protokol TCP UDP - Remote Hal. 11 Aplikasi Client jika mengirimkan pesan “andrew” maka TCP Server akan melakukan pembuatan file text.txt di komputer TCP Server.

Aplikasi Client jika mengirimkan pesan “user” maka TCP Server akan proses nama user komputer TCP Server dan TCP Server akan mengirimkan ke TCP Client.

Aplikasi Client jika mengirimkan pesan “detail” maka TCP Server akan melakukan proses spesifikasi CPU komputer TCP Server dan mengirimkan hasilnya ke TCP Client.

Kode program pada TCP Server.

Kode Program TCP Server Imports System.Net.Sockets Imports System.Text Imports System.IO Imports System.Drawing Imports System Imports Microsoft.Win32 Imports System.Diagnostics Imports System.Windows.Forms Module Module1 Sub Main()

Dim serverSocket As New TcpListener(8888)

Dim requestCount As Integer

Dim clientSocket As TcpClient

Dim a, b As String

Dim m_LM As RegistryKey

Dim m_HW As RegistryKey

Dim m_Des As RegistryKey

Dim m_System As RegistryKey

Dim m_CPU As RegistryKey

Dim m_Info As RegistryKey

m_LM = Registry.LocalMachine m_HW = m_LM.OpenSubKey("HARDWARE") m_Des = m_HW.OpenSubKey("DESCRIPTION") m_System = m_Des.OpenSubKey("SYSTEM") m_CPU = m_System.OpenSubKey("CentralProcessor") m_Info = m_CPU.OpenSubKey("0")

(12)

Bab 4 Protokol TCP UDP - Remote Hal. 12

'Dim bnds As Rectangle = My.Computer.Screen.Bounds

serverSocket.Start() msg("Server Started")

clientSocket = serverSocket.AcceptTcpClient() msg("Accept connection from client")

requestCount = 0

While (True)

Try

requestCount = requestCount + 1

Dim networkStream As NetworkStream = _

clientSocket.GetStream()

Dim bytesFrom(10024) As Byte

networkStream.Read(bytesFrom, 0,

CInt(clientSocket.ReceiveBufferSize))

Dim dataFromClient As String = _

System.Text.Encoding.ASCII.GetString(bytesFrom) dataFromClient = _ dataFromClient.Substring(0, dataFromClient.IndexOf("$")) msg(dataFromClient) a = dataFromClient If a = "andrew" Then msg2("andrew if then") If File.Exists("d:\testFile.txt") Then

'shows message if testFile exist

MsgBox("File 'testFile' Exist ")

Else

'create the file testFile.txt

File.Create("d:\testFile.txt") MsgBox("File 'testFile' created ")

End If End If If a = "user" Then b = "user" + System.Environment.UserName Dim bi As [Byte]() = Encoding.ASCII.GetBytes(b) Encoding.ASCII.GetBytes(b) networkStream.Write(bi, 0, bi.Length) networkStream.Flush() End If If a = "detail" Then b = "Prosesor =" +

(13)

Bab 4 Protokol TCP UDP - Remote Hal. 13 m_Info.GetValue("ProcessorNameString") Dim bi As [Byte]() = Encoding.ASCII.GetBytes(b) Encoding.ASCII.GetBytes(b) networkStream.Write(bi, 0, bi.Length) networkStream.Flush() End If 'kirim data

Dim serverResponse As String = _

"Jawaban Server " +

Convert.ToString(requestCount)

Dim sendBytes As [Byte]() = _

Encoding.ASCII.GetBytes(serverResponse) networkStream.Write(sendBytes, 0, sendBytes.Length) networkStream.Flush() msg(serverResponse) Catch ex As Exception MsgBox(ex.ToString) End Try End While clientSocket.Close() serverSocket.Stop() msg("exit") Console.ReadLine() End Sub

Sub msg2(ByVal mesg2 As String)

mesg2.Trim()

Console.WriteLine(mesg2)

End Sub

Sub msg(ByVal mesg As String)

mesg.Trim()

Console.WriteLine(mesg)

End Sub

(14)

Bab 4 Protokol TCP UDP - Remote Hal. 14 Contoh Hasil Pengujian TCP Remote

Referensi

Dokumen terkait

Dalam perencanaan dan perancangan Sekolah Sepakbola di Pekanbaru ini menggunakan pendekatan Struktur Sebagai Elemen Estetika. Metode yang digunakan pada perencanaan

Menunjuk- kan karya dan aktivitas seni dengan mengguna- kan berbagai media Merespons stimulus yang diberikan misal: benda- benda yang berwarna dan berbunyi Senang

PENGARUH PENDAPATAN, JUMLAH ANGGOTA KELUARGA DAN TINGKAT PENDIDIKAN TERHADAP PENGELUARAN KONSUMSI.. Universitas Pendidikan Indonesia | repository.upi.edu |

Dari pembahasan pemekaran wilayah di era otonomi daerah, hal-hal yang dapat disimpulkan dalam adalah berkaitan dengan Negara Kesatuan Republik Indonesia mempunyai

Busyairuddin Usman, op.. c) Penilaian hasil belajar PAI Akidah Akhlak ialah upaya pengumpulan informasi untuk menentukan tingkat penguasaan siswa terhadap suatu kompetensi

mana efektivitas amilum modifikasi ko- proses yang telah dihasilkan. Berdasarkan hal itu perlu dilakukan penelitian lebih lanjut terkait formulasi dan evaluasi tablet

Sukabumi biasanya membeli ikan dalam jumlah yang tidak terlalu besar, karena peda- gang di daerah tersebut juga membeli ikan yang dijual oleh bakul pengumpul yang berasal

terhadap Kualitas Audit. Hipotesis yang ditolak adalah: 1) Tekanan Anggaran Waktu tidak berpengaruh terhadap Premature Sign-Off, 2)