Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Funcionamiento ServerSocket (https://www.clubdelphi.com/foros/showthread.php?t=64533)

vivamotos 06-04-2009 16:53:46

Funcionamiento ServerSocket
 
Buenos días,

Quisiera saber como funciona un ServerSocket, como abrirlo capturar el mensaje y salir.

Mirad os cuento, tengo una báscula que va transmitiendo sus datos por TCP a unas direcciones IP que he puesto y un puerto, quisiera capturar el peso en una parte de mi programa, y entonces simplemente mostrar el peso y cerrar la comunicación, nada más.

Pero no tengo ni idea de su funcionamiento, en el evento OnGetThread y OnGetSocket veo que entra pero no se como tratarlo.

Me podeís ayudar???

Grácias.

Neftali [Germán.Estévez] 06-04-2009 17:30:29

¿Y no será un cliente lo que necesitas configurar? :D

Lo digo porque nosotros tenemos algo similar a eso. Básculas que devuelven datos de peso en una dirección TCP/IP (en realidad es vía serie, pero utilizando conversores leemos en una dirección IP -no se si es vuestro caso también-).

Para las lecturas desde el programa basta con un TClientSocket, con el siguiente evento:

Código Delphi [-]
// Leer del socket
procedure TFormDatosBascula.csBasculaRead(Sender: TObject; Socket: TCustomWinSocket);
var
  str, ini:ShortString;
  i:integer;
begin

  // Leer
  Str := Socket.ReceiveText;
  Str := _ConvertStrAscii7(Str);
  ini := Str;

  // Añadir
  TSLectura.Lines.Text := TSLectura.Lines.Text + Str;

  // Limitar las líneas?
  if (cbCortar.Checked) then begin
    // Limitrar?
    while (TSLectura.Lines.Count > 5) do begin
      // Eliminar la
      TSLectura.Lines.Delete(0);
    end;
  end;
end;

Esto como ves, va almacenando las lecturas en TSLectura.
A parte hay un Timer que lee cada cierto tiempo y Procesa esas lecturas.

El intervalo de proceso va variando dinámicamente, aunque eso ya es otro tema.

Un saludo.

vivamotos 06-04-2009 17:55:31

Solo una pequeña duda
 
Solamente una pequeña duda, el evento seria el "OnRead"? del ClientSocket, y otra cosa, seria mucho pedir si pudiera ser en C++ Builder.

Si lo poneís sereís los putos amos :D

Grácias igualmente

vivamotos 06-04-2009 18:06:44

Perfecto
 
CHICOS Funciona perfectamente soys unos fenómenos grácias.

Neftali [Germán.Estévez] 07-04-2009 12:17:30

Fantástico.
Si no te importa, ¿podrías poner el código final?
Así si alguien dentro de un tiempo busca lo mismo encontrará este hilo con la solución.

Gracias.
Un saludo.


La franja horaria es GMT +2. Ahora son las 17:43:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi