Option Strict On Imports System.IO 'binaryWriter,BinaryReader Imports System.Net.Sockets 'Socket Networkstream Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim va As Integer ' va 汎用の整数変数 で配列のインデックスなどに利用 Dim cmd, data1, data2 As Byte ' コマンド,パラメータ1,パラメータ2 バイト変数 Dim bda(8), rdata(8) As Byte ' 送受信データのためのバイト配列 Dim ar(8) As Byte For va = 0 To 8 bda(va) = 0 ' 送信データの全配列要素に0をセットする Next va = 16 cmd = Convert.ToByte(TextBox1.Text, va) '入力した16進表示の文字列データを数値に変換 data1 = Convert.ToByte(TextBox2.Text, va) '変換結果は バイトデータとなる data2 = Convert.ToByte(TextBox3.Text, va) bda(0) = cmd ' 配列の先頭にコマンドをセット bda(1) = data1 ' 配列の2番目にパラメータ1をセット bda(5) = data2 ' 配列の6番目にパラメータ2をセット TextBox4.Text = "" ' 送信データのテキストデータをクリア For va = 0 To 8 ' 配列の要素を16進表示し間にアスタリスク”*”を印字する TextBox4.Text = TextBox4.Text + Hex(bda(va)) + "*" Next ' MessageBox.Show("送受信処理呼び出し") Call sendcmd(bda, rdata) 'コマンド送信のサブプロシージャーを呼び出す TextBox5.Text = "" For va = 0 To 4 ' サブプロシージャーから渡された受信データを16進表示する TextBox5.Text = TextBox5.Text + Hex(rdata(va)) + "*" Next End Sub Sub sendcmd(ByVal ar() As Byte, ByVal rdata() As Byte) Dim Xpsocket As Socket Dim rn As Integer Dim xpstream As NetworkStream Dim binwriter As BinaryWriter Dim binreader As BinaryReader Xpsocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Xpsocket.Connect("192.168.1.46", 30704) xpstream = New NetworkStream(Xpsocket) binwriter = New BinaryWriter(xpstream) binreader = New BinaryReader(xpstream) binwriter.Write(ar) binwriter.Flush() For rn = 0 To 4 rdata(rn) = binreader.ReadByte Next rn Xpsocket.Close() End Sub End Class