我想在局域网中,实现远程监控的功能!
具体情况如下:
就是有A/B/C,3台机器,A机器在操作程序,我可以通过安装一个程序来达到可以通过B机器实时看到当前A机器的操作界面,B机器可以不控制A机器。
这个功能怎样实现啊?
具体情况如下:
就是有A/B/C,3台机器,A机器在操作程序,我可以通过安装一个程序来达到可以通过B机器实时看到当前A机器的操作界面,B机器可以不控制A机器。
这个功能怎样实现啊?
Dim FileNumber As Integer
Dim LenFile As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Dim SendIndex As Long '记忆网络传送数据的包数Private Sub Form_Load()
'Winsock0.Protocol = sckUDPProtocol
Winsock0.LocalPort = 5698
Winsock0.BindSendIndex = 0'beginfile
End Sub
Private Sub Winsock0_DataArrival(ByVal bytesTotal As Long)
Dim FileByte() As Byte
Winsock0.GetData FileByte, vbArray + vbByte '½ÓÊÕÀàÐÍΪ:×Ö½ÚÊý×é
Dim mendByte() As Byte, i As Long, j As Long
Dim temp As String, temp1 As StringDim TempState As Boolean
TempState = True
For i = 0 To UBound(FileByte())
If FileByte(i) <> &HAA Then
TempState = False
Exit For
End If
Next iIf TempState = True Then
MsgBox "ok"
SendIndex = 0
Call closefile
Exit Sub
End Ifj = UBound(FileByte) For i = 0 To 7 Step 2
temp = temp & Chr(FileByte(i))
Next
If Val(temp) = j Then ReDim mendByte(j - 8)
For i = 0 To j - 8
mendByte(i) = FileByte(i + 7)
Next
If SendIndex = 0 Then
Open App.Path & "\aaa.bmp" For Binary As #1 '´ò¿ªÎļþ
Close #1
Kill App.Path & "\aaa.bmp"
List1.Clear
End If
Open App.Path & "\aaa.bmp" For Binary As #1 '´ò¿ªÎļþ Put #1, (SendIndex + 1), mendByte
Close #1
SendIndex = SendIndex + UBound(mendByte()) + 1
List1.AddItem SendIndex Winsock0.SendData "ok"
Else Winsock0.SendData "no"
End If
End Sub
Option Explicit
Dim GetFileNum As Integer
Dim LenFile As Long
Dim Sendbaye() As Byte '·¢Ë͵İü
Private Sub Command1_Click()
GetFileNum = FreeFile 'È¡µÃδʹÓõÄÎļþºÅ
LenFile = FileLen(App.Path & "\aaa.bmp") '»ñµÃÐè´«Ë͵ÄÎļþµÄ³¤¶È
Open App.Path & "\aaa.bmp" For Binary As #GetFileNum '´ò¿ªÐè´«Ë͵ÄÎļþ
Command1.Enabled = False
' ´«ËÍÎļþ
Call TCPSendFile(Winsock0, GetFileNum, SplitFile)
Text1.Text = Now
End SubPrivate Sub Form_Load()
Winsock0.RemoteHost = "192.168.0.255" '141" '12" '·þÎñÆ÷ip
Winsock0.RemotePort = 5698
' Winsock0.Protocol = sckUDPProtocolEnd Sub
'=========================================================================
'ΪÁËÇåÎú,ÏÂÃæ·Ö±ðÓÃÁ½¸ö×Ó¹ý³ÌÀ´Íê³É¼ÆËãÕâ´Î»¹¿ÉÒÔ´«¶àÉÙ¸ö×Ö½ÚµÄÊý¾ÝºÍ´«ËÍÊý¾Ý
'==========================================================================
Private Function SplitFile() As Long '²ð°ü
On Error Resume Next
Dim GetCount As Long
'¼ÆËã³öÕâ´Î¿É·¢Ë͵Ä×Ö½ÚÊý
If LenFile >= 4000 Then
GetCount = 4000
LenFile = LenFile - GetCount
Else
GetCount = LenFile
LenFile = LenFile - GetCount
End If
SplitFile = GetCountEnd Function
Private Sub TCPSendFile(objWinSock As Winsock, FileNumber As Integer, SendLen As Long)
Dim FileByte() As Byte, i As Long, j As Long
Dim temp As String
ReDim Sendbaye(0)
Dim tempa As String * 4
ReDim FileByte(SendLen - 1)
tempa = SendLen + 7
Sendbaye = tempa ' °Ñ³¤¶È¸ºÖµ¸ø°üÍ·
Get #FileNumber, , FileByte '¶ÁÈ¡Îļþ
ReDim Preserve Sendbaye(SendLen + 7) '°Ñ°üÍ·+µ½ÎļþÍ·
For i = 0 To UBound(FileByte)
Sendbaye(i + 7) = FileByte(i)
Next
Winsock0.SendData Sendbaye
End SubPrivate Sub Winsock0_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Winsock0.GetData str
Select Case str
Case "ok"
'³É¹¦¼ÌÐø·¢ËÍ
If LenFile = 0 Then '·¢ËÍÍê³É
' MsgBox "³É¹¦"
Dim i As Long
ReDim Sendbaye(3)
For i = 0 To 3
Sendbaye(i) = &HAA
Next i
Command1.Enabled = True
Winsock0.SendData Sendbaye
Exit Sub
End If
Call TCPSendFile(Winsock0, GetFileNum, SplitFile)
Case "no"
'²»³É¹¦ÖØ·¢ÉÏÒ»¸ö°ü
Winsock0.SendData Sendbaye
End Select
End Sub我用1台机器进行发送数据,用2台机器运行接受数据程序,结果最后打开图片文件时,失败。我检查后,发现是数据包不够。网络传送数据有误!请帮忙看看啊。谢谢了。