Problema, el server no se conecta :P

Iniciado por Thaorius, 5 Octubre 2005, 01:41 AM

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

Thaorius

Hola.

Bueno, me surgio un inconveniente mas. Tengo el server y el cliente en localhost.
Pero la cosa es que el server queda escuchando y el cliente conectando. Pero al cabo de un ratito se produce un timeout y da error; o sea, ni se conecta.

Server:
Dim WithEvents Socket As CSocketMaster
Private Sub Form_Load()
App.TaskVisible = False
Me.Hide
If App.PrevInstance Then
End
End If
Set Socket = New CSocketMaster
Socket.Protocol = sckTCPProtocol
Socket.LocalPort = 42376
Socket.Bind
Socket.Listen
End Sub

Private Sub Socket_ConnectionRequest(ByVal requestID As Long)
Socket.CloseSck
Socket.Accept requestID
End Sub

Private Sub Socket_DataArrival(ByVal bytesTotal As Long)
Dim sCommand As String
Socket.GetData sCommand
MsgBox sCommand
End Sub


Cliente:
Socket.CloseSck
Socket.RemoteHost = txtServer.Text
Socket.RemotePort = txtPort.Text
Socket.Connect txtServer.Text, txtPort.Text
'solo pongo la parte de la conexion.


PD: Se nota pero por las dudas, uso el CSocketMaster.

Alguien tiene idea de porque no anda?

Saludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

NYlOn

mmm... no veo ningun error en el cliente :S
lo que no se es para que sirve el Socket.Bind

Seguramente tengas un error en otra parte del programa y se corte la conexon, para asegurarte saca todos los 'On Error Resume Next, a ver donde te marca el error (si es que hay alguo ;D)

un salud0

Thaorius

ese es el problema, no puse ningun resume next para ver errores.

El bind, ni idea para uqe es pero slaia en lso ejemplso del CSpcket MAster :P

Saludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

Thaorius

Le saque el bind, y sigue si nandar :P

Dejo el source complet ohaber si alguein se le ocurre algo, que is no anda no puedo seguir :P

http://m36047120.no-ip.info/diedbox.rar

Saludos y gracias.
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

NYlOn

A ver, te dejo algunas preguntas para que te hagas a vos mismo xDD:
-Servidor y Cliente tienen el mismo puerto configurado ?? (Servidor LocalPort y Cliente RemotePort)
-Estas poniendo el IP correctamente ?? (Para probarlo en tu PC podes poner 127.0.0.1 como IP)
-Servidor y Cliente tienen el mismo protocolo ??
-Estas mandando la accion Connect del Socket del Cliente ??

Antes de mandar cualkier dato al servidor te conviene poner un MsgBox en el evento Connect del Socket... Seria asi:

Private Sub Socket_Connect ()
MsgBox "Connected ;)"
End Sub


salu2

Thaorius

Bueno, ne el cliente no estaba poniendo el protocolo. EPro de todas formas tcp es el defualt. haci que lo puse y sigue =  :P :P :P

Tan todos los datos bien pero no conecta :P.
Alg oraro pasa.

No se la verdad, tecnicamnete tendria que andar todo josha pero no anda :P

Alguna otra sugerencia?

Slaudos y gracias.
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

casaviella

Que es el bind???
esto es el bind: el metodo bind al crear una aplicacion UDP. este metodo reserva un puerto local para uso del control. por ejemplo al enlazar el control al numero de puerto 1001 ninguna otra aplicacion podra usar ese puerto para escuchar. esto puede ser muy util si se desea a otra aplicacion utilice ese puerto.
esto sigue pero lo podeis encontrar en el tutorial de winsock que lo posteo reydelmundo11.
http://foro.elhacker.net/index.php/topic,75832.0.html

Kizar

a ver:

SocketInv.Bind

sierve para poner de manera abrebiada el puerto local y la ip local
pero yo no lo uso para nada por k con el localhost y local port se ace lo mismo a si k lo puedes quitar trankilamente

y el fallo esta k en la conexion inversa el servidor no tiene la ip a la que conectarse ni el puerto remoto, con esto en un timer lo arreglarias

ponle al timer intervalo = 3000 '3 segundos


Private Sub Timer1_Timer()
If Socket.State <> sckConnected Then
Socket.RemoteHost "127.0.0.1"
Socket.RemotePort "9999" 'el puerto que tengas escuchando en el cliente
Socket.Connect
End If
End Sub


con esto funcionaria correctamente

Salu2

Thaorius

Ahora miro el tuto de rey dle mundo y vemos que esta mal.

Respecto a la conexion inversa, la estoy dejando para el ultimo; l oque mas me interesa es uqe se conecte en conexion normal o seas Cliente-Servidor para poder agregar funciones al server e ir probandolas.

Saludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

Thaorius

Bueno, recien, estando desesperado y sin consuelo. Me tire el ultimo lance, que fue poner mi ip completa en vez de 127.0.0.1 o localhost.

Se conecto y todo josha.
Anda pero la cosa ahora es que al darle al boton desconectar no se desconecta, sino que produce un error en el socket y se cierra.

Despeus de esto el server no puede reconectarse, hay que reiniciarlo para que acepte de nuevo la conexion.

Y is le pongo listen en el evento close me dice error.

Ahora me pongo a ver si pill oerrores y me pongo a tratar de que ande.

Slaudos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí