Dim mWeight(1 To 1) As Long
Dim mNeedWeight(1 To 1) As Boolean
Dim mlblShowText(1 To 1) As String
'=======第一跨Winsock監聽計數
Dim WinSockCount(1 To 1) As Integer
Private Sub Form_Load()
Dim I As Integer
'=======第一跨
Me.Winsock_W(1).Listen
'
mlblShowText(1) = "L1_2 "
End Sub
'20120604 Add Start
'Private Sub GetWinSockt(Index As Integer)
' Dim strRetVal As String
'
' If Me.Winsock_W(Index).State = 7 Then
' Me.Winsock_W(Index).GetData strRetVal
' If Len(strRetVal) > 0 Then
' If IsNumeric(Trim(Mid(strRetVal, 5, 6))) Then
' mWeight(Index) = strRetVal 'Int(Trim(Mid(strRetVal, 5, 6)))
' End If
' End If
' End If
' Debug.Print mWeight(Index)
'
'End Sub
Private Sub Timer1_Timer()
Timer1.Interval = 0
For I = 1 To 1
WinSockCount(I) = WinSockCount(I) + 1
If WinSockCount(I) > 100 Then
WinSockCount(I) = 100
End If
If Me.Winsock_W(I).State = 7 And WinSockCount(I) < 10 Then
ShapeStatus(I).FillColor = RGB(0, 255, 0)
Else
ShapeStatus(I).FillColor = RGB(255, 0, 0)
If Me.Winsock_W(I).State <> 0 And Me.Winsock_W(I).State <> 2 Then
Me.Winsock_W(I).Close
Me.Winsock_W(I).Listen
End If
End If
Next
Timer1.Interval = 1000
End Sub
Private Sub Winsock_W_Connect(Index As Integer)
Debug.Print Me.Winsock_W(Index).State
End Sub
Private Sub Winsock_W_ConnectionRequest(Index As Integer, ByVal requestID As Long)
' Me.Winsock_W(Index).Accept requestID
' Debug.Print Me.Winsock_W(Index).State
' Debug.Print requestID
If Me.Winsock_W(Index).State <> 0 Then
Me.Winsock_W(Index).Close
End If
Me.Winsock_W(Index).Accept requestID
End Sub
Private Sub Winsock_W_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strRetVal As String
If bytesTotal > 0 Then
WinSockCount(Index) = 0
If Me.Winsock_W(Index).State = 7 Then
Me.Winsock_W(Index).GetData strRetVal
' If Len(strRetVal) > 0 Then 'And mNeedWeight(Index) = True
' If IsNumeric(Trim(Mid(strRetVal, 5, 6))) Then
' mWeight(Index) = Int(Trim(Mid(strRetVal, 5, 6)))
'
' lblShow(Index).Caption = mlblShowText(Index) & mWeight(Index) & " " & Now()
lblShow(Index).Caption = strRetVal ' "" & mWeight(Index) & " " & Now()
' If mWeight(Index) > 0 And mNeedWeight(Index) = True Then
' SetWeight mWeight(Index), Index
' End If
' End If
' End If
End If
End If
End Sub
'Private Sub lblShow_Click(Index As Integer)
' If Me.Winsock_W(Index).State <> 0 And Me.Winsock_W(Index).State <> 7 Then
' Me.Winsock_W(Index).Close
' Me.Winsock_W(Index).Listen
' End If
'End Sub
'Private Sub lblShow_DblClick(Index As Integer)
'' If Me.Winsock_W(Index).State <> 0 Then
'' Me.Winsock_W(Index).Close
'' End If
'' Me.Winsock_W(Index).Connect
' If Me.Winsock_W(Index).State <> 0 And Me.Winsock_W(Index).State <> 7 Then
' Me.Winsock_W(Index).Close
' Me.Winsock_W(Index).Listen
' End If
'End Sub
以上這部分是用Visual Basic 讀取托利多電子秤重量的,用的是Socket 網口方式。
然后我在轉化成C#的時候,提示我連接被拒絕。
有沒有高手看看怎么把這段VB的代碼弄成C#的,并且正常作業。
謝謝謝謝謝謝。
uj5u.com熱心網友回復:
連接是否要發送特定的指令,你看看通信協議uj5u.com熱心網友回復:
關鍵VB代碼中也沒什么特殊指令啊,直接用一個Socket控制元件就連接上去了。總不會到了C#下面就要用特殊指令了吧。
uj5u.com熱心網友回復:
用socket除錯助手試試,https://www.jianshu.com/p/3e16e5dab8a6轉載請註明出處,本文鏈接:https://www.uj5u.com/net/60529.html
標籤:C#
上一篇:C#全景圖片展示
