Artigo retirado de www.macoratti.net (http://www.macoratti.net)
O projeto Servidor
No projeto Servidor temos o código do evento Load do formulário onde o servidor fica 'escutando' uma porta(no meu caso a porta 1412) aguardando uma conexão. Abaixo o formulário - frmServidor - e o código do evento Load:
(//http://www.macoratti.net/vb_rmt1.gif)
Private Sub Form_Load()
On Error Resume Next
If Not App.PrevInstance = True Then
winsockServidor.LocalPort = 1412
winsockServidor.Listen
EsconderDaBarraDeTarefas
Else
Unload Me
End If
End Sub
A seguir no evento DataArrival (ativado quando o comando estiver sendo enviado) do Servidor esta o código que irá processar os comandos recebidos do cliente e executar o serviço solicitado.
Private Sub winsockServidor_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim comando As String
winsockServidor.GetData str
Select Case comando
Case "note"
Shell "notepad.exe", vbMaximizedFocus
Case "calc"
Shell "calc.exe", vbMaximizedFocus
Case "pain"
Shell "pbrush", vbMaximizedFocus
Case "close"
CloseMe
Case "ctrl"
Shell "control", vbMaximizedFocus
Case "mplayer"
Shell "mplayer", vbMaximizedFocus
Case "scan"
Shell "scandskw", vbMaximizedFocus
Case "cddooropen"
retvalue = mciSendcomandoing("set CDAudio door open", returncomandoing, 127, 0)
Case "dir"
CriaNovoDiretorio ("c:\macoratti\Teste1\")
Case "closeme"
winsockServidor.Close
Unload Me
Case "wintime"
Dim lngReturn As Long
lngReturn = GetTickCount()
info = ((lngReturn / 1000) / 60) & " minutos."
winsockServidor.SendData info
End Select
End Sub
O projeto Cliente
O projeto cliente irá possui a interface mostrada na figura abaixo. Nela temos o controle winsock configurado para efetuar a conexão com o servidor na porta 1412 através de um número IP fornecido. Após a conexão ser efetivada podemos enviar alguns comandos que serão acionados quando você clicar em um dos botões de comando.
(//http://www.macoratti.net/vb_rmt2.gif)
O código do botão - Conectar - é o seguinte :
Private Sub Command1_Click()
On Error GoTo err_Command1_Click
winsockCliente.RemotePort = 1412
If txtConectarServidor.Text = "" Then
MsgBox "Informe o endereço IP do servidor"
Else
winsockCliente.RemoteHost = txtConectarServidor.Text
winsockCliente.Connect
End If
If winsockCliente.State = sckConnected Then
Me.Caption = "Conectado ao servidor remoto " & txtConectarServidor.Text
frmPainel.Enabled = True
Else
Me.Caption = "Não conectado ao servidor remoto " & txtConectarServidor.Text
frmPainel.Enabled = False
End If
Exit Sub
err_Command1_Click:
Screen.MousePointer = vbNormal
MsgBox "Ocorreu o seguinte erro : " & vbCrLf & vbTab & _
"Procedure: Command1_Click" & vbCrLf & vbTab & _
"Erro No. : " & Err.Number & vbCrLf & vbTab & _
"Descrilçao : " & Err.Description, vbCritical + vbOKOnly, App.EXEName
End Sub
Cada evento Click de cada botão de comando irá enviar um comando para o servidor. Abaixo alguns dos comandos enviados:
Private Sub cmdcalc_Click()
On Error GoTo err_cmdcalc_Click
Dim comando As String
comando = "calc"
winsockCliente.SendData comando
Exit Sub
err_cmdcalc_Click:
Screen.MousePointer = vbNormal
MsgBox "Ocorreu o seguinte erro : " & vbCrLf & vbTab & _
"Procedure: cmdcalc_Click" & vbCrLf & vbTab & _
"Erro No. : " & Err.Number & vbCrLf & vbTab & _
"Descrilçao : " & Err.Description, vbCritical + vbOKOnly, App.EXEName
End Sub
Private Sub Command4_Click()
Dim comando As String
comando = "scan"
winsockCliente.SendData comando
End Sub
Private Sub Command7_Click()
Dim comando As String
comando = "dir"
winsockCliente.SendData comando
MsgBox "O diretorio c:\macoratti\Teste1\ foi criado. " & winsockCliente.RemoteHost
End Sub
TUTORIAL BY Macoratti
Link: http://www.macoratti.net/vb_rmt1.htm (http://www.macoratti.net/vb_rmt1.htm)
thanks

esse josé é o cara rs