我想在局域网中,实现远程监控的功能!
具体情况如下:
就是有A/B/C,3台机器,A机器在操作程序,我可以通过安装一个程序来达到可以通过B机器实时看到当前A机器的操作界面,B机器可以不控制A机器。
这个功能怎样实现啊?

解决方案 »

  1.   

    pcAnywhere 软件 ,a 机器安装服务器端 b安装客户机
      

  2.   

    A机器的主要功能就是,接收B发送的一个指令后,就抓取屏幕图象,然后传输给B机器.B机器全部接受数据后,重现图象.这是很基础的功能.
      

  3.   

    接受数据的代码:
    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 '&acute;ò&iquest;&ordf;&Icirc;&Auml;&frac14;&thorn;
            Close #1
            Kill App.Path & "\aaa.bmp"
            List1.Clear
        End If
        
        Open App.Path & "\aaa.bmp" For Binary As #1 '&acute;ò&iquest;&ordf;&Icirc;&Auml;&frac14;&thorn;        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
      

  4.   

    发送数据的程序代码:
    Option Explicit
    Dim GetFileNum As Integer
    Dim LenFile As Long
    Dim Sendbaye() As Byte '·&cent;&Euml;&Iacute;&micro;&Auml;°ü
    Private Sub Command1_Click()
            GetFileNum = FreeFile '&Egrave;&iexcl;&micro;&Atilde;&Icirc;&acute;&Ecirc;&sup1;&Oacute;&Atilde;&micro;&Auml;&Icirc;&Auml;&frac14;&thorn;&ordm;&Aring;
            LenFile = FileLen(App.Path & "\aaa.bmp") '&raquo;&ntilde;&micro;&Atilde;&ETH;è&acute;&laquo;&Euml;&Iacute;&micro;&Auml;&Icirc;&Auml;&frac14;&thorn;&micro;&Auml;&sup3;¤&para;&Egrave;
            Open App.Path & "\aaa.bmp" For Binary As #GetFileNum '&acute;ò&iquest;&ordf;&ETH;è&acute;&laquo;&Euml;&Iacute;&micro;&Auml;&Icirc;&Auml;&frac14;&thorn;
            Command1.Enabled = False
    '        &acute;&laquo;&Euml;&Iacute;&Icirc;&Auml;&frac14;&thorn;
            Call TCPSendFile(Winsock0, GetFileNum, SplitFile)
            Text1.Text = Now
    End SubPrivate Sub Form_Load()
     Winsock0.RemoteHost = "192.168.0.255" '141" '12" '·&thorn;&Icirc;&ntilde;&AElig;÷ip
     Winsock0.RemotePort = 5698
     
    ' Winsock0.Protocol = sckUDPProtocolEnd Sub
    '=========================================================================
    '&Icirc;&ordf;&Aacute;&Euml;&Ccedil;&aring;&Icirc;ú,&Iuml;&Acirc;&Atilde;&aelig;·&Ouml;±&eth;&Oacute;&Atilde;&Aacute;&frac12;&cedil;&ouml;×&Oacute;&sup1;&yacute;&sup3;&Igrave;&Agrave;&acute;&Iacute;ê&sup3;&Eacute;&frac14;&AElig;&Euml;&atilde;&Otilde;&acirc;&acute;&Icirc;&raquo;&sup1;&iquest;&Eacute;&Ograve;&Ocirc;&acute;&laquo;&para;à&Eacute;&Ugrave;&cedil;&ouml;×&Ouml;&frac12;&Uacute;&micro;&Auml;&Ecirc;&yacute;&frac34;&Yacute;&ordm;&Iacute;&acute;&laquo;&Euml;&Iacute;&Ecirc;&yacute;&frac34;&Yacute;
    '==========================================================================
    Private Function SplitFile() As Long '&sup2;&eth;°ü
            On Error Resume Next
            Dim GetCount As Long
            '&frac14;&AElig;&Euml;&atilde;&sup3;&ouml;&Otilde;&acirc;&acute;&Icirc;&iquest;&Eacute;·&cent;&Euml;&Iacute;&micro;&Auml;×&Ouml;&frac12;&Uacute;&Ecirc;&yacute;
            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 ' °&Ntilde;&sup3;¤&para;&Egrave;&cedil;&ordm;&Ouml;&micro;&cedil;&oslash;°ü&Iacute;·
            Get #FileNumber, , FileByte '&para;&Aacute;&Egrave;&iexcl;&Icirc;&Auml;&frac14;&thorn;
            ReDim Preserve Sendbaye(SendLen + 7) '°&Ntilde;°ü&Iacute;·+&micro;&frac12;&Icirc;&Auml;&frac14;&thorn;&Iacute;·
            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"
    '&sup3;&Eacute;&sup1;&brvbar;&frac14;&Igrave;&ETH;&oslash;·&cent;&Euml;&Iacute;
            If LenFile = 0 Then '·&cent;&Euml;&Iacute;&Iacute;ê&sup3;&Eacute;
    '            MsgBox "&sup3;&Eacute;&sup1;&brvbar;"
                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"
    '&sup2;&raquo;&sup3;&Eacute;&sup1;&brvbar;&Ouml;&Oslash;·&cent;&Eacute;&Iuml;&Ograve;&raquo;&cedil;&ouml;°ü
             Winsock0.SendData Sendbaye
    End Select
    End Sub我用1台机器进行发送数据,用2台机器运行接受数据程序,结果最后打开图片文件时,失败。我检查后,发现是数据包不够。网络传送数据有误!请帮忙看看啊。谢谢了。