1. Visual Basic.Net

Socket Programming

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.

Comments to: Socket Programming

    Your email address will not be published. Required fields are marked *

    Attach images - Only PNG, JPG, JPEG and GIF are supported.