Socket Programming

alfa6661
- May 11, 2015
0 (0 votes)
Rate :
Membuat aplikasi client server yang berkomunikasi menggunakan socket.

Socket Programming adalah protokol yang mempunyai metode untuk membuat koneksi antar antara perangkat dalam jaringan. Socket programming bertujuan agar satu program bisa berinteraksi dengan program lainnya dalam satu jaringan.

Ada dua jenis penggunaan protokol komunikasi untuk Socket Programming :

  1. TCP / IP (Transmission Control Protocol / Internet protokol)
  2. UDP / IP (User Datagram Protocol / Internet protocol).

Penggunaan Kode

Pada VB.Net untuk membuat koneksi antar antara perangkat dalam jaringan bisa menggunakan namespace System.Net.Sockets. Namespace ini berisi kelas Socket yang akan melakukan segala sesuatu untuk membuat koneksi antar antara perangkat dalam jaringan, menggunakan dua kelas untuk mewakili kedua ujung koneksi socket. TcpClient mewakili akhir klien, sedangkan TcpListener mewakili end server.

Kita perlu minimal dua program untuk menjalankan socket program . Sebuah Socket Server Program (Server) dan Socket Program Klien (Client).

  1. Program Server: Server Socket Program berjalan pada komputer memiliki soket yang terikat dengan Nomor Port pada komputer itu dan mendengarkan permintaan klien dan ketika server mendapatkan permintaan dari Klien, Server mengirimkan respon terhadap Klien
  2. Program Klien: Klien Program Socket harus mengetahui IP Address (Hostname) dan port yang digunakan dari komputer yang menjadi Server untuk melakukan request. klien melakukan koneksi ke server dan mengirim permintaan, dan juga menerima respon dari server

Server

Program ini bertindak sebagai Server dan mendengarkan permintaan klien. Sebagai contoh kita tetapkan server menggunakan port 8888 untuk Socket Server, itu adalah sebuah instance dari TcpListener Kelas VB.NET.

Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Module Module1
     
    Sub Main()
        Dim port As Integer = 8888
        Dim ipaddr As IPAddress = IPAddress.Parse("127.0.0.1")
        Dim serverSocket As New TcpListener(ipaddr, port)
        Dim clientSocket As TcpClient
        serverSocket.Start()
        msg("Server Started")
        clientSocket = serverSocket.AcceptTcpClient()
        msg("Accept connection from client")
 
        While (True)
            Try
                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("Data from client -  " + dataFromClient)
                Dim serverResponse As String = "Data Diterima"
                Dim sendBytes As [Byte]() = _
                    Encoding.ASCII.GetBytes(serverResponse)
                networkStream.Write(sendBytes, 0, sendBytes.Length)
                networkStream.Flush()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End While
 
 
        clientSocket.Close()
        serverSocket.Stop()
        msg("exit")
        Console.ReadLine()
    End Sub
 
    Sub msg(ByVal pesan As String)
        pesan.Trim()
        Console.WriteLine(" >> " + pesan)
    End Sub
 
End Module

Pertama Anda harus mulai running Program Server, Langkah selanjutnya adalah mulai Program Client.

Sekarang Server dan Klien bisa terhubung. Jika Anda ingin menguji komunikasi, Anda klik Connect di klien, setelah terkoneksi, klik tombol Send, maka Anda dapat melihat perubahan pada layar Server dan Client.

Client

Klien harus terhubung ke Port dan IP Address dari Server di sini kita berikan sebagai 127.0.0.1, karena Server dan klien berjalan pada mesin yang sama.

Imports System.Net.Sockets
Public Class Form1
 
    Dim clientSocket As New TcpClient()
    Dim stat As Boolean = False
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If stat = False Then
            clientSocket.Connect("127.0.0.1", 8888)
            Label1.Text = "Client Socket Program - Server Connected ..."
            stat = True
            Button1.Text = "Send Message"
        Else
            Dim serverStream As NetworkStream = clientSocket.GetStream()
            Dim outStream As Byte() = _
            System.Text.Encoding.ASCII.GetBytes(TextBox2.Text + "$")
            serverStream.Write(outStream, 0, outStream.Length)
            serverStream.Flush()
 
            Dim inStream(10024) As Byte
            serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
            Dim returndata As String = System.Text.Encoding.ASCII.GetString(inStream)
            msg("Data Server : " + returndata)
        End If
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = "Client Started"
    End Sub
 
    Sub msg(ByVal pesan As String)
        TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + pesan
    End Sub
 
End Class

Note

Sebelum Anda menjalankan Program Klien Anda harus mulai Program server terlebih dahulu.

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article