Socketprogrammierung: Shell zerhackt
-
solange du nur text ausgibst, dürfte da nichts schief gehen, habe jedenfalls keinen fehler gesehen. Ausser dass du \r\n statt \n im Request schicken solltest.
Wenn du ne Binärdatei ausgibst, kann die Shell schonmal durcheinander kommen.
-
Sieht mir nach Unicode-Zeichen auf ner ASCII-Shell aus
Das sind vermutlich die Binärzeichen die das verursachen.
-
AJ schrieb:
Anhand der verwendeten betriebssystemabhängigen Funktion (recv) und der Parameter für deinen Compiler entnehme ich, dass du unter Linux programmierst, richtig?
Wie ist buf definiert?
buf ist bei mir so definiert:
#define MAX_LINE 1024 char buf[MAX_LINE];
Ich programmiere in FreeBSD 6.0 RELEASE. Durch sizeof(buf)-1 stell ich sicher das nur 1023 Zeichen aufgenommen werden, damit auf jedenfall noch Platz für die Endekennung ist. Ansonsten hatte ich es teilweise das die Variable command noch ausgegeben wurde, nachdem Daten empfangen wurden.
@DrGreenthumb:
Sorry, dass habe ich vergessen zu erwähnen, ich habe \n durch \r\n ersetzt bei meiner GET-Anfrage.
War keine Binärdatei dabei, zumindest nicht dass es mir bewusst wäre.Ich habe als Systemzeichensatz ISO-8859-15 eingestellt. Vllt. sollte ich wirklich mal auf Unicode umsteigen.
Ich werde es einfach mal ausprobieren und mich dann nochmal melden. Danke soweit an alle die geantwortet haben.
Edit:
Ich habe das mal eben ohne X getestet. Wenn X nicht gestartet ist, hat die Shell keine Probleme damit. Nur wenn X gestartet ist zerhaut es die Shell (in xterm).Gruß, Vellas
-
Kann es mit dem charset der jeweiligen Seite zu tun haben? Wie kann ich denn dafür sorgen das sowohl ISO-8859-15, als auch UTF-8 funktionieren? (Wenn einer angegeben ist und zwar iso-8859-1 oder -15, dann klappts, wenn keiner angegeben ist nicht und wenn utf-8 angegeben ist natürlich auch nicht). Habe mich noch nie so richtig mit verschiedenen Zeichensätzen beschäftigt. Link würde mir reichen.
-
Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Nunja Du musst machen was jeder Browser machen muss, den Seitenzeichensatz bei Bedarf in den Systemzeichensatz konvertieren. IMHO hat XHTML standardmäßig UTF-8, alles andere muss im Header oder im Kopf der HTML angegeben werden.
Zum Konvertieren gibt es zumindest bei Linux iconv (http://www.uni-hildesheim.de/rz/DOC/php_de/ref.iconv.html)
-
Ok, danke für die Antwort.
-
ich dachte umlaute usw. schreibt man in html immer als ¨.. etc
-
Noch etwas: Mit
cat -v [i]dateiname[/i]
werden Binärzeichen vor der Ausgabe in unbedenklichen Text konvertiert, daher ist das aus Sicherheitsgründen immer, außer vielleicht wenn ein Dateiinhalt sehr genau bekannt ist, zu empfehlen, statt cat, welches die Binärzeichen ungefiltert (siehe LordJaxoms Post) ausgibt.
-
DrGreenthumb schrieb:
ich dachte umlaute usw. schreibt man in html immer als ¨.. etc
ne, zumindest bei XHTML kannst du jede beliebige Kodierung benutzen.