|
分類:[VB.NET/VB2005 以降]
環境は、 Visual Basic 2010 Pro Windows10 Pro です。
''' <summary>TCPクライアント</summary> Private _objTCPClient As New TcpClient ''' <summary>ソケットストリーム</summary> Private _objNetworkStream As NetworkStream
''' <summary>TCPクライアントプロパティ</summary> Private Property TCPClient As Net.Sockets.TcpClient Get Return Me._objTCPClient End Get Set(ByVal value As Net.Sockets.TcpClient) Me._objTCPClient = value End Set End Property ''' <summary>ソケットストリームプロパティ</summary> Private Property NetworkStream As Net.Sockets.NetworkStream Get Return Me._objNetworkStream End Get Set(ByVal value As Net.Sockets.NetworkStream) Me._objNetworkStream = value End Set End Property
''' <summary>接続</summary> Public Sub Connect()
Try '接続状態の確認 If Me.Connected = True Then 'いったん閉じる Disconnect() End If 'TCP送信開始 Me.TCPClient = New Net.Sockets.TcpClient() Me.TCPClient.Connect(Me.SOCKETOUT_IPADDRESS.ToString, Me.SOCKETOUT_PORTNUMBER) 'ソケットストリームを開く Me.NetworkStream = Me.TCPClient.GetStream()
'接続状態 Me.Connected = Me.TCPClient.Connected
'接続できない場合 Catch ex As SocketException 'エラー出力 clsError.DispError(ex) End Try
End Sub ''' <summary>接続</summary> Public Sub Connect()
Try '接続状態の確認 If Me.Connected = True Then 'いったん閉じる Disconnect() End If 'TCP送信開始 Me.TCPClient = New Net.Sockets.TcpClient() Me.TCPClient.Connect(Me.SOCKETOUT_IPADDRESS.ToString, Me.SOCKETOUT_PORTNUMBER) 'ソケットストリームを開く Me.NetworkStream = Me.TCPClient.GetStream()
'接続状態 Me.Connected = Me.TCPClient.Connected
'接続できない場合 Catch ex As SocketException 'エラー出力 clsError.DispError(ex) End Try
End Sub
''' <summary>送信</summary> Public Sub SendData(ByVal StrSendData As String)
Dim dat As Byte() StrSendData="abc"
Try '英語または、日本語 If gintLanguage = 0 Or gintLanguage = 1 Then dat = System.Text.Encoding.GetEncoding(932).GetBytes(StrSendData) 'S-JISの場合 Else dat = System.Text.Encoding.UTF8.GetBytes(StrSendData) 'UTF8の場合 End If ' ソケット送信 Me.NetworkStream.Write(dat, 0, dat.GetLength(0))
'送信できない場合 Catch ex As SocketException
'エラー出力 clsError.DispError(ex) End Try
End Sub
仕事のプログラムなのですべては、見せられないのですが
Me.NetworkStream.WriteのNetworkStream及び Me.TCPClient tについて接続成功、データ送信は、できるですがたまにVisial Basic2010 の画面を最小化するとnothingになって送れなくなる または、サーバー側のテストプログラムで送信データのリスト表示をClearするとNetworkStream及びTCPClientの値がnothingになります。 どのような理由が該当するでしょうか? 以上、ご教示いただきたく思います。
|