Problema tonto con Winsock

Iniciado por SeroS, 3 Mayo 2006, 21:28 PM

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

SeroS

  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
Life is one long insane trip. Some people just have better directions.

sch3m4

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  ;)
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

SeroS

  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 =)
Life is one long insane trip. Some people just have better directions.