Autor Tema: Delphi 7 y TCPClient  (Leído 8701 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Delphi 7 y TCPClient
« en: 08 de Mayo de 2006, 22:08:09 »
Tengo el problema que al intentar conectar con delphi y el componente TcpClient a un servidor todo lo hace bien pero me da problemas al leer la respuesta del servidor. El código que tengo puesto es:

Código: Delphi
  1. procedure TForm1.BitBtn2Click(Sender: TObject);
  2. begin
  3.    TcpClient1.Sendln(Edit3.Text,CRLF);
  4.    while TcpClient1.WaitForData(1000) do;
  5.    Memo1.Lines.Add(TcpClient1.Receiveln(#$D#$A));
  6. end;

O no recivo datos, o se cuelga o me da una excepción, que estoy haciendo mal?.

Un saludo y gracias por leerme.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *****
  • Mensajes: 5544
    • Picmania by Redraven
Re: Delphi 7 y TCPClient
« Respuesta #1 en: 09 de Mayo de 2006, 05:17:32 »
En (depende de tu directorio de instalación) C:\Archivos de programa\Borland\Delphi6\Demos\Internet\NetChat tienes un ejemplo de como usar los TTCPClient y TTCPServer. Roguemos a los dioses electrónicos que en Delphi7 hayan respetado los ejemplos de Delphi6 ...

En caso de que Delphi 7 ya no lleve este ejemplo dáme un toque y te lo zipeo y envío.

Un saludo.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Delphi 7 y TCPClient
« Respuesta #2 en: 09 de Mayo de 2006, 05:52:23 »
Los dioses no nos han escuchado por que estos ejemplos no aparecen, lo mas parecido si es que se puede decir parecido es una aplicacion de chat pero que no se ve como utilizar estos componentes ya que los emplea de una forma rara. Por lo tanto si me puedes enviar los ejemplos haber si saco algo de provecho te lo agradeceria.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Delphi 7 y TCPClient
« Respuesta #3 en: 09 de Mayo de 2006, 08:31:54 »
Los dioses no nos han escuchado por que estos ejemplos no aparecen, lo mas parecido si es que se puede decir parecido es una aplicacion de chat pero que no se ve como utilizar estos componentes ya que los emplea de una forma rara. Por lo tanto si me puedes enviar los ejemplos haber si saco algo de provecho te lo agradeceria.

Un saludo.

No uso ese componente por eso no te puedo dar una ayuda mas fina, pero como sugerencia, antes de hacer un TCPClient tienes que hacer un connect.  Tiene que haber un vínculo entre Server y Host (o Client), una de las diferencias entre TCP y UDP.

El TCP.SendLn lo puedes enmarcar dentro de un try.. except y capturar el mensaje de error.  De esa manera podrás tener una idea mas clara de qué es lo que está sucediendo y tu software seguirá corriendo.

Si quieres los ejemplos del delphi, dime tu mail y te lo adjunto.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Delphi 7 y TCPClient
« Respuesta #4 en: 09 de Mayo de 2006, 08:49:06 »
El programa esta funcionando en parte correctamente, me explico, el cliente se conecta al servidor y le manda un comando para ejecutar en el servidor, y el servidor responde con un resultado. Todo funciona bien a excepción de la recepcion de los resultados del servidor. El cliente cuando leo los datos recibidos no devuelve nada y ademas da una violación de lectura o escritura (no recuerdo ahora) de la meoria. La parte que interviene y esta mal es la que puese en un post anterior. Tambien decir que los Socket enDelphi 7 estan encapsulados bajo los componentes TcpServ y TcpClient y que no trae ni un ejemplo decente de como utilizarlo y que no de problemas. Al final no se si es problema del componente o de que yo lo programo mal.

Un saludo y gracias a todos por vuestro interes.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Delphi 7 y TCPClient
« Respuesta #5 en: 09 de Mayo de 2006, 12:03:52 »
mmm oye revisa una cosa porque hace años de esto pero una vez tube que corregir algo en la libreria de delphi 7 sobre tcp client. Estaba haciendo un cliente de msn en delphi y me encontraba que había por ahí un timeout puesto a 0 en infinito asi que usa el google para tu problema no vaya a ser el mismo.

1 slaudo.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Delphi 7 y TCPClient
« Respuesta #6 en: 09 de Mayo de 2006, 20:36:45 »
Bueno, a grandes males grandes remedios. Como me urge terminar el trabajo que estoy haciendo he tomado la siguiente solución: el componente TcpClient encapsula al objeto TClientSocket que logicamente no existe en la paleta pero existe en las librerias en concreto en la unit ScktComp, así que lo he declarado a pelo, le he asignado a mano los eventos y a funcionar. El cliente TcpClient es una mala encapsulación de este objeto, que si que funciona bien. Por cierto la versión es Delphi 7.

Un saludo y gracias a todos por vuestro interes.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Delphi 7 y TCPClient
« Respuesta #7 en: 10 de Mayo de 2006, 10:23:42 »
Bueno, a grandes males grandes remedios. Como me urge terminar el trabajo que estoy haciendo he tomado la siguiente solución: el componente TcpClient encapsula al objeto TClientSocket que logicamente no existe en la paleta pero existe en las librerias en concreto en la unit ScktComp, así que lo he declarado a pelo, le he asignado a mano los eventos y a funcionar. El cliente TcpClient es una mala encapsulación de este objeto, que si que funciona bien. Por cierto la versión es Delphi 7.

Un saludo y gracias a todos por vuestro interes.

Es una pena.  En lo personal uso los componentes INDY que trae el delphi.  Para comenzar a usarlos, te sugiero te bajes el Indy 10 (el Delphi 7 trae el indy 9 si mal no recuerdo). 

Estos componentes me han demostrado funcionar muy bien , ser free y estar muy bien depurados.  No tengo quejas al respecto.  Tal vez se peque de falta de documentación (algo comun en las aplicaciones free) lo cual obliga por ahi a averiguar cosas en solitario mediante prueba/error.  De todas formas, prefiero eso a tener que comprar alguno.

Esto se está solucionando de a poco y hay una lista de correo que se llama Indy Demos que versa sobre el tema de los ejemplos.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)