Problemas con TClientSocket

Hola. He realizado un chat con Borland Builder C++ 5.0 pero tengo un problema: cuando el cliente esta en una máquina remota e intenta conectarse al servidor dice que no se puede conectar (se produce un error con el evento eeConnect). Sin embargo cuando el cliente y el servidor están en la misma máquina todo funciona bien. ¿A qué se debe esto? El servidor corre bajo windows XP y el cliente bajo win 98, los dos conectados a través de tarifa plana normal, no ADSL ni router ni nada.

3 Respuestas

Respuesta
1
El problema por lo que puedo imaginar ya que no estoy ahí es que la dirección de ip que estas poniendo en el cliente es incorrecta. Pueden esta utilizando las direcciones locales y no las que les proporciona el servidor de internet.
De no ser así detállame por favor un poco más el problema.
No, el cliente cada vez que arranca solicita la dirección IP del servidor al que se va a conectar y el usuario la introduce por pantalla. Esta dirección se la digo a la persona que prueba el cliente desde su casa a través del messenger, así que la dirección IP siempre es la correcta. Estoy usando el puerto 1024 en cliente y servidor. ¿Tiene esto algo que ver?
Por lo que me dices sigo insistiendo que debe ser la dirección de ip. Me podrías pasar la dirección que estas utilizando. Alguna ya que normalmente es distinta tras cada conexión que realizas.
Me quede pensando en tu problema, existe otra opción. Fíjate en la configuración de la conexión de internet en tu xp en propiedades - opciones avanzadas. Existe ahí una opción que dice "proteger mi equipo y mi red limitando o impidiendo el acceso a el desde internet", esta opción debe estar destilada para poder aceptar la conexión.
Respuesta
1
¿Con tarifa plana normal te refieres a conexión vía modem a un distribuidor de servicio de internet? Esto lo necesito saber porque normalmente este tipo de conexión te asigna dinámicamente un IP, el cual puede ser muy diferente cada vez que te conectas a internet.
Recuerda que en el cliente debes establecer el IP del Servidor utilizando la popiedad Address, y si el servidor esta conectado a internet mediante modem puede que sea difícil establecer la conexión con el cliente.
Bueno pues, espero un poco más de información para poder continuar ayudándote.
Si, la conexión es vía modem mediante un distribuidor. La dirección IP es dinámica y cambia cada vez que me conecto. En el cliente se pone la dirección IP del servidor correcta, ya que a través del messenger se la envío a la persona que esta probando el cliente. Estoy usando el puerto 1024 en servidor y cliente. ¿Tiene esto algo que ver?
Te podré ayudar mejor mañana lunes, pero te sugiero que intentes con otro puerto como: 6590 o 9893, etc. porque puede ser que algún otro programa este utilizando el 1024.
Mañana le sigo con las sugerencias.
Ya solucione el problema. Se debía a que no estaba aceptando conexiones remotas por una opción que tenia activada en las opciones de mi conexión a internet. Muchas gracias por todo
Respuesta
1
Podría ser el IP que estas usando.
En el ClientSocket, la propiedad HOST debemos especificar el IP donde esta el ServerSocket. Así que tu Server deberá estar en una PC con IP Publico para que cualquier cliente pueda comunicarse con él.
El cliente cada vez que arranca solicita al usuario la dirección IP del servidor. Esta dirección se la estoy pasando a la persona que esta probando el cliente a través del messenger, con lo que la dirección IP siempre es la correcta. Tanto cliente como servidor están usando el puerto 1024, ¿tiene esto algo que ver?
El puerto no tiene nada que ver. Siempre y cuando no este siendo usado por alguna otra aplicación.
¿Podrías hacer algo para probar?
Has un ping al IP del servidor. Y luego escribe nbtstat -A xxx. Xxx. Xxx. Xxx donde las xxx son el Ip del servidor. Asegurate de que el IP sea publico.
Ya solucione el problema. Resulta que tenia 1 opción en mi conexión a internet que deshabilitaba las conexiones desde fuera (una especie de servidor de seguridad que trae el XP). Gracias por tu ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas