metode pengiriman informasi menggunakan ip adress dengan port
salam, semoga ilmu ini berguna untuk yang newbie, okey kali ini saya akan menerangkan sesingkat mungkin konsep dari judul yang saya buat, yaitu metode mengirim informasi menggunakan ip adress dengan menggunakan port, sebagai contoh, kita memiliki dua buah komputer, dan kita ingin mengirim pesan kepada komputer yang lain, bila kita pahami dua komputer yang akan kita hubungkan meski memiliki ip adress yang berbeda, dan kita mendeskripsikan port yang akan kita pake untuk berkomunikasi, satu komputer dengan komputer yang lain harus memiliki port yang sama, akan tetapi memiliki ip adress yang berbeda, cara ini sudah di gunakan pada aplikasi yang berbasis LAN, yaiku aplikasi client server,.. tapi dalam hal ini saya bukan menjelaskan tentang client server mungkin dilain kali,. sekarang kita tahu pada dasarnya sistem informasi memberi data untuk diolah,. okey kita akan belajar untuk mengolah data yang dikirim oleh port ip/tcp adress,
sediakan. program pengirim data:
1. membuat program pengirim data ke port (pengirim)
2. mendeskripsikan apa yang dikirim oleh port (penerima)
3. memberi responds terhadap pengirim
4. menampilkan hasil responds penerima
pahami dengan baik konsep di atas :
mari kita menuju tema pembahasan, saya menggunakan vb sebagai metode untuk pembelajarannya
1. koding untuk mengirim pesan lewat port sebagai berikut :
Private Sub SendButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SendButton.Click
Dim str_penjualan As String
If _Connection IsNot Nothing AndAlso _Connection.Client.Connected AndAlso _Connection.Stream IsNot Nothing Then
str_penjualan = "#01|" + T2.Text + "|" + T1.Text + "|" + T3.Text + "|" + T4.Text + "|" + T5.Text + "|" + Date.Today + "|" + TimeOfDay
Dim buffer() As Byte = System.Text.Encoding.ASCII.GetBytes(str_penjualan)
_Connection.Stream.Write(buffer, 0, buffer.Length)
End If
End Sub
2. koding untuk menerima kiriman dari pengirim
Private Sub input_mysql(ByVal strings As String)
Call switch_koneksi()
Dim strArr() As String
strArr = strings.Split("|")
If strArr.Length > 2 Then
Select strArr(0) 'process it by the first element in the split array
Case "#01"
cmd = New MySqlCommand("insert into td_data (kd_transaksi,spbn_id,harga,jml_liter,bayar,tanggal,jam) values (@kd_transaksi, @spbn_id, @harga, @jml_liter, @bayar, @tanggal, @jam)", conn)
cmd.Parameters.Add("@kd_transaksi", MySqlDbType.VarChar).Value = strArr(1).ToString
cmd.Parameters.Add("@spbn_id", MySqlDbType.VarChar).Value = strArr(2).ToString
cmd.Parameters.Add("@harga", MySqlDbType.VarChar).Value = strArr(3).ToString
cmd.Parameters.Add("@jml_liter", MySqlDbType.VarChar).Value = strArr(4).ToString
cmd.Parameters.Add("@bayar", MySqlDbType.VarChar).Value = strArr(5).ToString
cmd.Parameters.Add("@tanggal", MySqlDbType.Date).Value = strArr(6).ToString
cmd.Parameters.Add("@jam", MySqlDbType.VarChar).Value = strArr(7).ToString
cmd.ExecuteNonQuery()
Case "#02"
cmd = New MySqlCommand("insert into td_pembelian (kd_pembelian,spbn_id,faktur,no_mobil,nama_supir,stik_mobil,jml_liter,tanggal,jam) values (@kd_pembelian, @spbn_id, @faktur, @no_mobil, @nama_supir, @stik_mobil, @jml_liter,@tanggal,@jam)", conn)
cmd.Parameters.Add("@kd_pembelian", MySqlDbType.VarChar).Value = strArr(1).ToString
cmd.Parameters.Add("@spbn_id", MySqlDbType.VarChar).Value = strArr(2).ToString
cmd.Parameters.Add("@faktur", MySqlDbType.VarChar).Value = strArr(3).ToString
cmd.Parameters.Add("@no_mobil", MySqlDbType.VarChar).Value = strArr(4).ToString
cmd.Parameters.Add("@nama_supir", MySqlDbType.VarChar).Value = strArr(5).ToString
cmd.Parameters.Add("@stik_mobil", MySqlDbType.VarChar).Value = strArr(6).ToString
cmd.Parameters.Add("@jml_liter", MySqlDbType.VarChar).Value = strArr(7).ToString
cmd.Parameters.Add("@tanggal", MySqlDbType.Date).Value = strArr(8).ToString
cmd.Parameters.Add("@jam", MySqlDbType.VarChar).Value = strArr(9).ToString
cmd.ExecuteNonQuery()
End Select
End If
End Sub
3.koding untuk mengirim responds ke pengirim
Private Sub DoReadData(ByVal result As IAsyncResult)
Dim info As ConnectionInfo = CType(result.AsyncState, ConnectionInfo)
Try
'If the stream is valid for reading, get the current data and then
'begin another async read
If info.Stream IsNot Nothing AndAlso info.Stream.CanRead Then
info._LastReadLength = info.Stream.EndRead(result)
For index As Integer = 0 To _LastReadLength - 1
info._DataQueue.Enqueue(info._Buffer(index))
Next
'The example responds to all data reception with the number of bytes received;
'you would likely change this behavior when implementing your own protocol.
info.SendMessage("Received " & info._LastReadLength & " Bytes")
For Each otherInfo As ConnectionInfo In info.Monitor.Connections
If Not otherInfo Is info Then
otherInfo.SendMessage(System.Text.Encoding.ASCII.GetString(info._Buffer))
End If
Next
info.AwaitData()
Else
'If we cannot read from the stream, the example assumes the connection is
'invalid and closes the client connection. You might modify this behavior
'when implementing your own protocol.
info.Client.Close()
End If
Catch ex As Exception
info._LastReadLength = -1
End Try
End Sub
4.koding untuk menampilkan respond dari penerima
Private Sub InvokeAppendOutput(ByVal message As String)
Dim doAppendOutput As New Action(Of String)(AddressOf AppendOutput)
Me.Invoke(doAppendOutput, message)
End Sub
sediakan. program pengirim data:
1. membuat program pengirim data ke port (pengirim)
2. mendeskripsikan apa yang dikirim oleh port (penerima)
3. memberi responds terhadap pengirim
4. menampilkan hasil responds penerima
pahami dengan baik konsep di atas :
mari kita menuju tema pembahasan, saya menggunakan vb sebagai metode untuk pembelajarannya
1. koding untuk mengirim pesan lewat port sebagai berikut :
Private Sub SendButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SendButton.Click
Dim str_penjualan As String
If _Connection IsNot Nothing AndAlso _Connection.Client.Connected AndAlso _Connection.Stream IsNot Nothing Then
str_penjualan = "#01|" + T2.Text + "|" + T1.Text + "|" + T3.Text + "|" + T4.Text + "|" + T5.Text + "|" + Date.Today + "|" + TimeOfDay
Dim buffer() As Byte = System.Text.Encoding.ASCII.GetBytes(str_penjualan)
_Connection.Stream.Write(buffer, 0, buffer.Length)
End If
End Sub
2. koding untuk menerima kiriman dari pengirim
Private Sub input_mysql(ByVal strings As String)
Call switch_koneksi()
Dim strArr() As String
strArr = strings.Split("|")
If strArr.Length > 2 Then
Select strArr(0) 'process it by the first element in the split array
Case "#01"
cmd = New MySqlCommand("insert into td_data (kd_transaksi,spbn_id,harga,jml_liter,bayar,tanggal,jam) values (@kd_transaksi, @spbn_id, @harga, @jml_liter, @bayar, @tanggal, @jam)", conn)
cmd.Parameters.Add("@kd_transaksi", MySqlDbType.VarChar).Value = strArr(1).ToString
cmd.Parameters.Add("@spbn_id", MySqlDbType.VarChar).Value = strArr(2).ToString
cmd.Parameters.Add("@harga", MySqlDbType.VarChar).Value = strArr(3).ToString
cmd.Parameters.Add("@jml_liter", MySqlDbType.VarChar).Value = strArr(4).ToString
cmd.Parameters.Add("@bayar", MySqlDbType.VarChar).Value = strArr(5).ToString
cmd.Parameters.Add("@tanggal", MySqlDbType.Date).Value = strArr(6).ToString
cmd.Parameters.Add("@jam", MySqlDbType.VarChar).Value = strArr(7).ToString
cmd.ExecuteNonQuery()
Case "#02"
cmd = New MySqlCommand("insert into td_pembelian (kd_pembelian,spbn_id,faktur,no_mobil,nama_supir,stik_mobil,jml_liter,tanggal,jam) values (@kd_pembelian, @spbn_id, @faktur, @no_mobil, @nama_supir, @stik_mobil, @jml_liter,@tanggal,@jam)", conn)
cmd.Parameters.Add("@kd_pembelian", MySqlDbType.VarChar).Value = strArr(1).ToString
cmd.Parameters.Add("@spbn_id", MySqlDbType.VarChar).Value = strArr(2).ToString
cmd.Parameters.Add("@faktur", MySqlDbType.VarChar).Value = strArr(3).ToString
cmd.Parameters.Add("@no_mobil", MySqlDbType.VarChar).Value = strArr(4).ToString
cmd.Parameters.Add("@nama_supir", MySqlDbType.VarChar).Value = strArr(5).ToString
cmd.Parameters.Add("@stik_mobil", MySqlDbType.VarChar).Value = strArr(6).ToString
cmd.Parameters.Add("@jml_liter", MySqlDbType.VarChar).Value = strArr(7).ToString
cmd.Parameters.Add("@tanggal", MySqlDbType.Date).Value = strArr(8).ToString
cmd.Parameters.Add("@jam", MySqlDbType.VarChar).Value = strArr(9).ToString
cmd.ExecuteNonQuery()
End Select
End If
End Sub
3.koding untuk mengirim responds ke pengirim
Private Sub DoReadData(ByVal result As IAsyncResult)
Dim info As ConnectionInfo = CType(result.AsyncState, ConnectionInfo)
Try
'If the stream is valid for reading, get the current data and then
'begin another async read
If info.Stream IsNot Nothing AndAlso info.Stream.CanRead Then
info._LastReadLength = info.Stream.EndRead(result)
For index As Integer = 0 To _LastReadLength - 1
info._DataQueue.Enqueue(info._Buffer(index))
Next
'The example responds to all data reception with the number of bytes received;
'you would likely change this behavior when implementing your own protocol.
info.SendMessage("Received " & info._LastReadLength & " Bytes")
For Each otherInfo As ConnectionInfo In info.Monitor.Connections
If Not otherInfo Is info Then
otherInfo.SendMessage(System.Text.Encoding.ASCII.GetString(info._Buffer))
End If
Next
info.AwaitData()
Else
'If we cannot read from the stream, the example assumes the connection is
'invalid and closes the client connection. You might modify this behavior
'when implementing your own protocol.
info.Client.Close()
End If
Catch ex As Exception
info._LastReadLength = -1
End Try
End Sub
4.koding untuk menampilkan respond dari penerima
Private Sub InvokeAppendOutput(ByVal message As String)
Dim doAppendOutput As New Action(Of String)(AddressOf AppendOutput)
Me.Invoke(doAppendOutput, message)
End Sub
sangat membatu
BalasHapus