![]() |
String über Socket senden
Hallo möchte gerne mit Delphi
einen String mit SocketClient1 senden. Es gibt ein Beispiel für Java
Code:
Wenn ich mir das Beispiel von Java anschaue, wird der String aufgeteilt!
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(); } } } Wie mache ich das?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: String; begin s := (String.format("<address>%s</address>\n", "123test")); ClientSocket1.Socket.SendText(s); end; |
AW: String über Socket senden
Der String wird nicht aufgeteilt, sondern zusammengesetzt. Kannst es folgendermaßen nachbauen:
Delphi-Quellcode:
String.Format(
'<event>'#10'<address>%s</address>'#10'<message>%s</message>'#10'</event>', ['123', 'Text']); |
AW: String über Socket senden
Die Delphi-Syntax kennst du aber?
\n gibt es so nicht in Delphi " ist garantiert nicht das Quotierungszeichen für Pascal-Strings Wie man beim Format die Parameter angibt, solltest du wissen und wenn doch nicht, dann siehe F1 Und nein, wo wird da denn was aufgeteilt? Im Gegenteil, jemand kommt auf die saublöde Idee und bastelt manuell aus einzelnen Strings eine XML-Datei zusammen. ![]() So, aber das Wichtigste, warum verwendest du nicht einfach eine richtige REST-API? |
AW: String über Socket senden
Hallo,
wenn ich die Strings durch ein EDit1.Text und Memo1.Text ersetze, geht es leider nicht mehr.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var s: String; begin try ClientSocket1.Open; s := String.Format( '<event>'#10'<address>%s</address>'#10'<message>%s</message>'#10'</event>', [Edit1.Text,Memo1.Text]); ClientSocket1.Socket.SendText(s); finally ClientSocket1.Close; end; end; |
AW: String über Socket senden
Zitat:
|
AW: String über Socket senden
Stimmt:shock:
Das Programm läuft, der Text wird aus dem Memofeld nicht übernommen. Hat bestimmt was mit dem Format des Memos zutun oder? |
AW: String über Socket senden
Jetzt geht alles ?
Danke |
AW: String über Socket senden
Liste der Anhänge anzeigen (Anzahl: 1)
Habe doch noch ein Problem!
Wenn ich kurze Zeit später erneut was senden möchte, kommt diese Fehlermeldung!
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var s: String; begin try ClientSocket1.Open; s := String.Format( '<event>'#10'<address>%s</address>'#10'<message>%s</message>'#10'</event>', [Edit1.Text,Memo1.Text]); ClientSocket1.Socket.SendText(s); ClientSocket1.Close; Edit1.Clear; Memo1.Clear; finally ClientSocket1.Free; end; end; |
AW: String über Socket senden
Wundert mich nicht. :roll:
Zitat:
|
AW: String über Socket senden
Immer die gleichen:
Erst die Mutter vor die Tür setzen und sich hinterher beschweren, weil die Bude nicht mehr aufgeräumt wird ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz