Corrijanme por favor.

Iniciado por mastercss, 25 Enero 2010, 22:43 PM

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

mastercss

Estoy aprendiendo visual basic despues de solo haber tocado programación estructurada y me hago un poko un lio. Me he aventurado a crear un chat cutre cliente servidor con basic xd. El problema es que cuando le doy a conectar en el cliente me dice Error 10048 en tiempo de ejecucion, dirección en uso. Aclaro que ejcuto tanto servidor como cliente en mi ordenador y para conectar utilizo mi ip local. LEs posteo los codes.

Cliente:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Winsock1.RemoteHost = Text3.Text
Winsock1.Connect
End Sub

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

Private Sub Form_Load()

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
Text1.Text = Text1.Text + datos
End Sub


Servidor:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Winsock1.Listen
End Sub

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


Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
Text1.Text = Text1.Text + datos
End Sub


Aclaro que el puerto utilizado es el 888. Esta establecido en el interfaz gráfico de VBA al igual que tambien lo esta el tipo de conexión (TCP/IP).


Salu2 y gracias de antemano.


ssccaann43 ©

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

raul338

No creo que el problema sea de codigo, sino que en los mismos sockets estas usando el mismo puerto  :o y eso no se hace jeje, el socket servidor debe tener un puerto y el cliente otro, fuera de eso, creo que deberia funcionar xD


ABDERRAMAH

Citar
Private Sub Command1_Click()
Winsock1.RemoteHost = Text3.Text
Winsock1.Connect
End Sub

¿ dónde creas una instancia del objeto winshock1 ? ¿o esque no sale aquí?


mastercss

No sale xd. Esque es lo que pas cuando trabajas con el entorno de basic xd.


Salu2 y gracias

mastercss

Una pregunta como es que no pueden enviar por el mismo socket, me refiero, la salida de datos tiene que ser enviada por un puerto distinto que la entrad de datos???

No entendi bien.

Gracias y salu2

ABDERRAMAH

#6
Ya, esque en parte es importante... de todas formas una pregunta:

¿Has probado éste objeto servidor en otro programa?
Lo que es el propio objeto, la clase... ¿sabes al 100% que funciona?

Sería bueno ver cómo se generan los eventos de nuevo cliente y data recivido si los tiene... esque pueden ser muchas cosas...

¿puede ser el error algo parecido a esto?:

llamada insegura desde diferente tread. Se ha hecho referencia a un objeto a través de un tread que no fue creado por este...

Mas o menos, no recuerdo cómo es, pero vaya....

¿O no se controlo soket exception?

raul338

Una aplicacion cliente / servidor, debe tener sockets configurados para ser cliente o ser servidor. Una vez que un socket escuche un puerto (servidor) no puede otro socket usar ese mismo puerto. Y un socket que se conecta un puerto en especial debe conectarse desde un puerto (o sea, desde TU puerto hacia SU puerto)

Esto te puede explicar un poco mas ;)


mastercss

El caso eske el codigo fuente esta cambiado al manual que vi pero basicamente es lo mismo. He podido observar por otros codes que he visto que el problema se encuentra en conection request. Resulta que en conection request en otros codecs establecen de nuevo winsock1.localport en 0 y vulven a aceptar la conexion entrante no si si sera este el error. La verdad esk me toy liando un poko.


Salu2

mastercss

#9
Haber si entiendo, no puedo escuchar por el mismo puerto por el que envio datos?Un poko raro no???xd
NO me entero de na
Si no es mucha molestia podrias señalar en el code lo que dices que esta mal???plz seria de gran ayuda


salu2

P.D:Para el que tenga dudas e esto me base pa hacer el code:

http://www.elguruprogramador.com.ar/articulos/aplicaciones-cliente-servidor-en-visual-basic-utilizando-el-control-winsock.htm