Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: SeroS en 3 Mayo 2006, 21:28 PM

Título: Problema tonto con Winsock
Publicado por: SeroS en 3 Mayo 2006, 21:28 PM
  Hola miren andube leyendo como se usa el winsock en VB, pero la mayoria de los post tienen los links caducados, asi que agradeceria si alguien me puede decir mi error en el codigo, el programa es un cliente y un servidor, en el que el servidor le envia datos al cliente y dicho cliente lo muestra en un text...
-------------------------------------------------------------------------
Cliente:

Dim datarecivida As String

Private Sub Form_Load()
    WS.Close
    WS.Listen
End Sub

Private Sub WS_ConnectionRequest(ByVal requestID As Long)
    WS.Close
    WS.Accept
End Sub

Private Sub WS_DataArrival(ByVal bytesTotal As Long)
    WS.GetData datarecivida
    Text1.Text = datarecivida
End Sub

-------------------------------------------------------------------------

Servidor:

Private Sub Command1_Click()
    WS.RemoteHost = "127.0.0.1"                                                                         
    WS.Close
    WS.Connect      ' Aca me tirar el error dice "adress in use"
    Command1.Enabled = False
End Sub

Private Sub Command2_Click()
    Dim enviar As String
    enviar = Trim(Text2.Text)
    WS.SendData enviar
End Sub

--------------------------------------------------------------------------
Por si acaso que les sea de ayuda estoy corriendo el server y el cliente en la misma pc, y los puertos en los winsock tanto del servidor como del cliente estan en el puerto 6874 ya preseteado...  Saludos y Gracias por la ayuda
Título: Re: Problema tonto con Winsock
Publicado por: sch3m4 en 3 Mayo 2006, 21:57 PM
o estás haciendo una conexion inversa, o el cliente es en realidad el server, y el server el cliente...

Tienes que decirle al socket por dónde escuchar:

Private Sub Form_Load()
    WS.Close
    WS.Listen
End Sub


debes ponerle el puerto despues de listen

Private Sub Form_Load()
    WS.Close
    WS.Listen puerto
End Sub


Cuando aceptes la conexión tienes que decirle el ID de la conexion:

Private Sub WS_ConnectionRequest(ByVal requestID As Long)
    WS.Close
    WS.Accept requestID
End Sub


Cuando conectes, tienes que decirle en qué puerto conectar:


Private Sub Command1_Click()
                                                                           
    WS.Close
    WS.Connect "127.0.0.1",puerto   
    Command1.Enabled = False
End Sub


En el command2_click no es necesario declarar la variable:

Private Sub Command2_Click()
    WS.SendData Trim(Text2.Text)
End Sub


Mira en http://lympex.securityhead.com/index2.php?menu=articulos en la parte de programacion hay un pdf sobre programacion de sockets en VB6  ;)
Título: Re: Problema tonto con Winsock
Publicado por: SeroS en 3 Mayo 2006, 22:22 PM
  Primero que todo si estoy usando connecion inversa y Gracias ahora si anda, ahora que veo el modelo de la pagina logre, el problema era que seteaba en ambos programas el localport como 6874, asi que esta resuelto y gracias...

PD: ya me agrege la pag que me pasaste a favoritos =)