phpchris
Goto Top

UDP-Dienst erstellen

Hallo, ich wollte mal nachfragen, ob jemand von euch einen Ansatz für mich hat, wie ich einen UDP-Dienst unter Linux realisieren kann.
Folgendes soll gemacht werden:

es soll ein Dienst auf einem bestimmten Port lauschen und bei Anfrage soll er einen String zurückgeben.
Ist so etwas relativ einfach zu realisieren?

Sorry für die vielleicht blöde Frage, aber ich weiss echt nichtmal ansatzweise, wie ich das realisieren kann...

Content-ID: 6990

Url: https://administrator.de/forum/udp-dienst-erstellen-6990.html

Ausgedruckt am: 23.12.2024 um 02:12 Uhr

7217
7217 16.02.2005 um 17:35:18 Uhr
Goto Top
Es gibt ein Programm namens nc (oder netcat, je nach Distribution), was dieses wohl kann. Mit "man nc" erfährst du mehr darüber. Wäre, je nach Anwendungsfall, das einfachste Mittel, denke ich.

Mupfel
phpchris
phpchris 17.02.2005 um 08:27:26 Uhr
Goto Top
Danke, das werde ich gleich mal probieren...
phpchris
phpchris 17.02.2005 um 13:41:07 Uhr
Goto Top
So weit so gut, nur dass netcat nach jeder erfolgreichen Verbindung sich beendet.
Weiss jemand weiter?
phpchris
phpchris 17.02.2005 um 14:04:31 Uhr
Goto Top
Kann mir evtl. jemand dieses Script erklären?

Da sich netcat beim Ende der Verbindung beendet, kann es nur eine einzige Verbindung bedienen. Wer eine Lösung sucht, bei der netcat mehrere Verbindungen (nacheinander oder gleichzeitig) entgegennimmt, kann das folgende, 3-zeilige Shellscript verwenden:

$ cat <<EOF>mydemon
#!/bin/bash
export port=${port:-$1} # inherit $1 as $port
nc -l -p $port -e $0 & # await further connections on this port
EOF
$ chmod +x mydemon
$ ./mydemon 3000
$
phpchris
phpchris 17.02.2005 um 14:20:25 Uhr
Goto Top
Niemand?

Ich habe das Skript hier her: http://www.jfranken.de/homepages/johannes/vortraege/netcat.de.html

Irgendwie gibt es mir jedoch eine Fehlermeldung aus, das der Port $1 inkorrekt ist.

Kann mir das Skript denn niemand erklären?
7217
7217 17.02.2005 um 14:46:16 Uhr
Goto Top
Versuche mal folgende Zeile:

[mupfel@ocean ~]$ while true; do nc -l -p 4711 < index.htm ; done

Mupfel
phpchris
phpchris 17.02.2005 um 15:36:51 Uhr
Goto Top
Danke, das hat funktioniert...
7217
7217 17.02.2005 um 15:47:32 Uhr
Goto Top
fein

manchmal kann das Leben so einfach sein face-smile

Mupfel
phpchris
phpchris 11.03.2005 um 08:46:49 Uhr
Goto Top
Eine Frage habe ich jetzt doch wieder.
Wenn ich das Script aufrufe, muss ich die Shell beenden.
Kann ich das Script irgendwie so modifizieren, dass ich danach weiter per SSH arbeiten kann?

Oder kann ich es irgendwie anders aufrufen?
7217
7217 11.03.2005 um 08:55:33 Uhr
Goto Top
Ähm... ja, gute Frage... ich habs jetzt mal mit STRG-Z in den Hintergrund gejagt und dann mit "fg" wieder nach vorne geholt, wobei es sich dann jedesmal zuverlässig und reproduzierbar auf meinem System verabscheut hat (was in meinen Augen eigentlich NICHT nachvollziehbar ist).

Vielleicht klappts ja bei dir ähnlich... du könntest es mit STRG-Z in den Hintergrund schieben (supendieren) und dann mal diverse KILL-Versuche unternehmen.

regards, Mupfel
phpchris
phpchris 11.03.2005 um 09:29:13 Uhr
Goto Top
Nun ja, Problem ist, dass es bei Systemstart ausgeführt werden soll.

Wenn ich das nun ganz üblich als Link in rc5.d mache, bootet der VM-Rechner da nicht weiter.

P.S.: Ich schreibe VM-Rechner, damit du dir keine Sorgen machen musst. Ist nur eine VM-Ware und kein Produktivsystem ;)
7217
7217 11.03.2005 um 09:31:50 Uhr
Goto Top
Hum... vielleicht findet sich hier noch eine Lösung... im Moment fällt mir jedoch nix ein, sorry.

Mupfel
phpchris
phpchris 11.03.2005 um 09:33:29 Uhr
Goto Top
Vielen Dank soweit...
phpchris
phpchris 27.07.2005 um 17:26:34 Uhr
Goto Top
OK, habs rausgefunden.
Wenn man das in eine .sh Datei packt, ruft man die in der /etc/boot.local mit einem & am Ende au, dann bootet der Server durch.
Also etwa:

sh /opt/proc/myserver.sh &