Foro de elhacker.net

Comunicaciones => Redes => Mensaje iniciado por: crazykenny en 19 Noviembre 2011, 19:42 pm



Título: Problema para enviar/recibir datos por servidor
Publicado por: crazykenny en 19 Noviembre 2011, 19:42 pm
Hola; el caso es que he creado un servidor con Blitz3D, y, bueno, el caso es que, cuando envio una variable con un programa "cliente", el servidor puede responder; no obstante, cuando el programa cliente vuelve a enviar una variable, pues el servidor actua como si no hubiese recibido la variable, y, en el caso de cerrar y volver a ejecutar el cliente, pues el servidor vuelve a hacer lo mismo; vamos, responder a la primera variable, y, cuando el cliente vuelve a enviar otra variable, pues este actua como si no recibiese nada.
Cabe destacar que he probado a cerrar el servidor y volverlo a abrir desde el codigo y solo responde a la primera variable, y tambien a cerrar y volver a abrir el stream (o como se diga) en el servidor, pero nada, y, si cierro el stream (o como se diga) en el cliente, luego no me puedo volver a conectar al servidor.
Tambien he de mencionar que lo hago todo en la misma maquina utilizando la direccion ip 127.0.0.1, y que tambien lo probe a traves de internet en maquinas distintas, y me sucede lo mismo, y, claro, el cliente se queda ahi parado sin hacer nada esperando respuesta.
Por otra parte, si no es molestia, los codigos son los siguientes;
-Servidor:
Código:
svrgame=CreateTCPServer(8080)
If svrgame=0
Print "fallo creando servidor."
WaitKey()
End
EndIf
.recibir
strstream=AcceptTCPStream(svrgame)
If strstream=0
Print "Sin seņal"
Delay 1000
Goto recibir
EndIf
opciones#=TCPStreamPort(strstream)
daty$=opciones#
Print ReadString(strstream)
WriteString strstream, daty$
Print "Datos enviados."
Goto recibir
-Cliente:
Código:
Print "Inserte ip:"
datx$=Input()
Print "Inserte puerto:"
daty#=Input()
.enviando_00
tcp=OpenTCPStream(datx$,daty#)
If tcp<>0
Print "Cliente conectado."
Goto enviando
EndIf
Print "Fallo de conexion"
.enviando
chapapa$=Rand(1,1000)
WriteString tcp, chapapa$
Print "Datos enviados."
.recibir
While Not KeyHit(1)
.goo
datx$=ReadString(tcp)
If datx$=""
Print "4"
Delay 100
Goto goo
EndIf
opcions$=TCPStreamPort(tcp)
Print datx$
Delay 1000
If tcp<>0
Print "Cliente conectado."
Goto enviando
EndIf
Print "error"
WaitKey()
End
Wend
Gracias por vuestra atencion y ayuda.
Saludos.