On Sun, 1 Jun 2003 07:58:00 +0200 Josef Spillner josef@ggzgamingzone.org wrote:
send() ist ok. strlen() nicht, es terminiert beim \0-Byte.
Oki...so weit so gut, ich habe es jetzt folgendermaßen gemacht:
---snip---- int start_routing() { int byte; char buffer[]="\x5b\x04\x90\x00\x85\x01"; byte=send(sock,buffer,sizeof(buffer),0); if (byte == -1) { perror("start_routing() failed!" ); exit(EXIT_FAILURE); } return 0; } ---snip---
Statt strlen habe ich sizeof verwendet den Carriage Return und den Line Feed habe ich weggelassen. Mit ethereal habe ich mir wieder die Pakete angesehen. Jetzt terminiert er zwar nicht mehr bei \x90, aber er hängt ein Nullbyte an das Ende des Buffers. Das versaut mir aber das ganze . Das Programm soll eigentlich die Router Funktion unserer Eumex Anlage steueren. Ich habe dazu unter Windows mit Hilfe von tcpdump bzw. Ethereal mit mal angesehen, was die Anlage verschickt wenn ich den Router starte, bzw. ihn "abschalte". Dabei ist heraus gekommen, das wenn die Anlage die Routing Funktion starten soll, ein UDP Paket verschickt wird, was im DATA Teil des Packets eben den oben genannten Buffer enthält.
Hat noch jemand Ideen? Ich wäre sehr dankbar, MfG Martin