Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TCP/IP Socket xml (https://www.delphipraxis.net/183463-tcp-ip-socket-xml.html)

strom 11. Jan 2015 15:47


TCP/IP Socket xml
 
Hallo,
möchte über tcp/ip ein Telegramm versenden, siehe Beispiel für Java.
Wie könnte das für Delphi aussehen?
Code:
public class ServerTest {
 public static void main(String[] args) throws Exception {
   StringBuffer buf = new StringBuffer();
   buf.append("<event>\n");// Start-Tag
   buf.append(String.format("<address>%s</address>\n", "123test"));// Code
   buf.append(String.format("<message>%s</message>\n", "Hello World"));// Text
   buf.append("</event>");// End-Tag
   try {
          Socket socket = new Socket("localhost", 5555);// 5555 = Default-Port
          OutputStream os = socket.getOutputStream();
          BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
          bw.write(buf.toString());
          bw.flush();
          bw.close();
          os.close();
   } catch (Exception e) {
          e.printStackTrace();
   }
 }
}

Sir Rufo 11. Jan 2015 15:49

AW: TCP/IP Socket xml
 
Es wäre sehr freundlich, wenn du den Code auch in die CODE-Tags packen könntest, dann bleiben auch die Formatierungen/Einrückungen erhalten.

strom 11. Jan 2015 18:05

AW: TCP/IP Socket xml
 
Vielleicht so in diese Richtung!
Wer hat noch eine bessere Idee?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 var
 request, nl, content : string;
    i : integer;
begin
   content := 'address=1234567&message=hallo';
    if IdTCPClient1.Connected then IdTCPClient1.Disconnect;
     IdTCPClient1.Connect;
      nl := AnsiChar(#13) + AnsiChar(#10);
   request := 'POST /telegramin/alarmgeber/index.xml HTTP/1.1' + nl
   + 'Content-Type: application/x-www-form-urlencoded' + nl
   + 'Host: localhost' + nl
   + 'Content-Length: ' + IntToStr(length(content)) + nl
   + 'Expect: 100-continue' + nl
   + 'Connection: Keep-Alive'+ nl + nl
   + content;
 IdTCPClient1.IOHandler.WriteLn(request);
  for I := 1 to 20 do
   Memo1.Lines.Add(IdTCPClient1.IOHandler.ReadLn);
    IdTCPClient1.Disconnect;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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