AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ClientSocket Text mit Start und Endekennung senden
Thema durchsuchen
Ansicht
Themen-Optionen

ClientSocket Text mit Start und Endekennung senden

Ein Thema von torud · begonnen am 16. Jan 2007 · letzter Beitrag vom 16. Jan 2007
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 11:20
Hallo Wissende,

Ich möchte über die ClientSocket eine Verbindung zu einer anderen Software aufbauen und dieser einen Text senden. Die Verbindung habe ich schon hinbekommen. Das Senden funktioniert auch.

Aber leider will das andere Programm eine Start- und Endekennung für das Textprotokoll haben. Start = 2 und Ende ist 3. Mein Kollege sagte mir, dass ich das als Asci-Code schicken muss. Damit stellt sich mir aber die Fragen, wie ich das machen muss???

Bisher bin ich hier und habe aber keinen Erfolg:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  int_response:integer;
begin
      int_response:=ClientSocket1.Socket.SendText(chr(2) + 'OPR HB_WCH_2007' + chr(3));
      ShowMessage(inttostr(int_response));
end;
Es kommt immerhin was zurück, aber das Tool macht verständlicherweise nicht, was es soll. Sicher, weil die 2 und die 3 nicht im richtigen Format vorliegen!? Wer kann helfen?
Danke
Tom
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 11:34
Hallo Tom,

Start-Of-Text (STX, #2) und End-Of-Text (ETX, #3) hast du richtig codiert. Da muss es noch ein anderes Geheimnis geben, bis dass der Server mit dir kommuniziert. Eventuell musst du noch ein bestimmtes End-Of-Message Zeichen (z.B. RS, CR, oder LF) schicken, weil das Protokoll die Übergabe mehrerer Befehle erlaubt.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#3

Re: ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 11:40
Vielleicht erwartet das Programm tatsächlich eine 2 und 3 (also ASCII 50(#50) und 51(#51)) !

Probier das doch mal !
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 12:13
Zitat von chrisw:
Vielleicht erwartet das Programm tatsächlich eine 2 und 3 (also ASCII 50(#50) und 51(#51)) !
Dann würde er bei "2007" schon wieder einen neuen String anfangen...

Ich weiss nicht, ob du die ShowMessage() als das ansiehst, was "zurück kommt", aber das ist nichts, was dir das andere Programm antwortet sondern einfach nur, wieviel Bytes übertragen wurden. Daher ist dies niemals eine Antwort vom Empfänger.
Zitat von OH:
SendText returns the number of bytes sent. Note that this may be less than the length of the string S if the socket is nonblocking.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 12:30
Hm, also dieser Tipp ist schon mal nicht schlecht, denn ich denke, wenn ich da eine 0 zurückbekomme, hat die Komponente nichts gesendet...!?
Danke
Tom
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 15:43
Zitat von torud:
Hm, also dieser Tipp ist schon mal nicht schlecht, denn ich denke, wenn ich da eine 0 zurückbekomme, hat die Komponente nichts gesendet...!?
Dies stimmt nur, wenn der Socket im "blocking" Modus betrieben wird. Im "non-blocking" Modus würde er den Rest zum Senden zu einem späteren Zeitpunkt anfragen.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: ClientSocket Text mit Start und Endekennung senden

  Alt 16. Jan 2007, 19:37
mir hats jedenfalls geholfen, denn so wusste ich, dass ich entweder keine daten verschickt habe, ober das was rausging und zum debuggen war der hinweis recht hilfreich...es funzt jetzt im überigen auch. danke...

ClientSocket1.Socket.SendText(chr(2) + '1 OPR HB_WCH_2007' + chr(3)); so musste es sein. es fehlte nur ne id am anfang. war wohl ne eigenart, des programmierers...
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz