problema con winsock (debe ser facil de solucionar...)

Iniciado por vivachapas, 20 Octubre 2006, 01:08 AM

0 Miembros y 1 Visitante están viendo este tema.

vivachapas

Holas.... estoy empesando a trabajar con los winsock... segui el manual de como hacer un "chat" lo probe con otra compu y me funciono todo bien.... pero ahora quise yo hacer un programa distinto... para ver si lo lograba... es algo muy simple:
Use 2 form... en el primero q seria el servidor (aunque todavía no entiendo bien para q es cada uno...) puse solo un winsock y lo llame servidor y le puse en el LocalPort el numero 888 el codigo es el siguiente:

Private Sub Form_Load()
servidor.Listen
End Sub

Private Sub servidor_ConnectionRequest(ByVal requestID As Long)
servidor.Close
servidor.Accept requestID
End Sub

Private Sub servidor_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
servidor.GetData datos
If datos = "1" Then
Open "C:\Documents and Settings\Usuario Final\Escritorio\jiji.txt" For Output As #1
Print #1, "SOY UN KAPO... AGUS"
Close #1
End If
End Sub

en el segundo form (en realidad es otro proyecto... osea q los dos son Form1)
puse un winsock con el nombre cliente y en RemotePort puse el numero 888... tb puse 2 commandbutton y un textbox... el codigo es el siguiente:

Private Sub Command1_Click()
cliente.SendData "1"
End Sub

Private Sub Command2_Click()
cliente.RemoteHost = Text1.Text
cliente.Connect
End Sub

la idea del programa es q cuando yo le mando el servidor a alguien el lo abra... le pido la ip la pongo en el textbox del cliente y al pulsar el command1 se le cree en el escritorio un archivo *.txt de nombre jiji...

lo probe con migo mismo y funciona de 10 pero cuando se lo mando a otra persona... pongo el ip del otro en el cliente y pongo conectar (command2)... hasta ahi va bien pero cuando apreto el command1 para mandar la orden a q se genere el archivo me salta un error q dice algo de un protocolo... y al servidor (al otro chico q tiene el programa) tambien le aparece un error

por favor si me pueden decir q hago mal se los agradeceria...

desde ya muchas gracias

WarGhost

Tu amigo usa router?

si lo usa alomejor es por los puertos.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?


WarGhost

no me refiero a los puertos del router.

prueva con esto:

cliente:


Private Sub Command1_Click()
cliente.RemotePort = 888
cliente.RemoteHost = "127.0.0.1"
cliente.Connect
End Sub

Private Sub Command2_Click()
If Not cliente.State <> 7 Then
cliente.SendData "1"
Else
MsgBox "No estas conectado", vbCritical
End If
End Sub


Server:
Private Sub Form_Load()
servidor.LocalPort = 888
servidor.Listen
End Sub

Private Sub servidor_ConnectionRequest(ByVal requestID As Long)
servidor.Close
servidor.Accept requestID
End Sub

Private Sub servidor_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim data As String
servidor.GetData data
  If data = "1" Then
    Open "C:\Beta.txt" For Binary Access Write As #1
       Put #1, , "SOY UN KAPO... AGUS"
    Close #1
  End If
End Sub



;D Salu2
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

vivachapas

Cita de: WarGhost en 20 Octubre 2006, 02:35 AM
Tu amigo usa router?

si lo usa alomejor es por los puertos.

ni idea... jeje yo solamente le paso el programa compilado... ademas tmp se q es un router...

y... warghost... gracias por los codigos... despues los voy a probar

vivachapas

no no me funciona... no me tira ningun error pero tampoco me crea el documento... no me lo hace ni si intento con migo ni cuando lo hago con otra compu...
nadie sabe porque puede ser

WarGhost

as  mirado si se a creado aquí:
"C:\Beta.txt"

que es que en el escritorio necesitas saber el nombre de user.

;D Salu2
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

vivachapas

yo ya le cambie la ruta al escritorio y el nombre... el problema es q el servidor no ejecuta la accion... xq si pongo por ej q lo q diga en un textbox del cliente aparezca en otro del servidor lo hace pero no si le pregunto si lo q dice en el textbox es igual a algo q haga otra accion... a lo mejor estoy usando mal las variables... al principio usaba string... ahora bytes... los datos q envio son numeros.... no se si alguien me podria ayudar con este problemita... jeje gracias

MORFEO_2

Hola viejo, si dices que al otro chico  en este caso quien tiene el servidor tambien le sale un error al momento de enviar el commando en ete caso  winsock1.sendata = "1" es pq la conexion se realizo, y aqui mi duda, pues si la conexion se realizo no te deberia dar un error de protocolo, en un primer momento me imagine que podria ser un error en la ruta de donde crearas el archivo (C:\Documents and Settings\Usuario Final\Escritorio\jiji.txt ) que talves tu amigo tiene el systema  instalado en  una particion D:\    en este caso el error seria que el programa servidor se cierra al no encontrar la ruta a crear el archivo y tu al intentar enviar nuevamente el comando claro te sale error de protocolo. No digo q sea el caso pero no seme ocurre otra cosa ya q el code parece estar bien, y de hecho si a hambos les envia el error al tu presionar el command para enviar el comando es pq la conexion esta establecida en un momento

solucion  posible: uno te propongo que hagas la aplicacion de connexion inversa, dos q saques la ruta del systema para crear el archivo a la segura en una carpeta q exista


para q salgas de las dudas visita mi web http://www.netspy.es.mn  busca en la sección articulos ahi eh puesto algunos codes y hay un ejemplo de troyano de conexion inversa  talves te sirva bye bye men





Aun puedes despertar...xD largavida a ][NetSpy][ and ][Humble&Team][


vivachapas