[GastForen Archiv Perl und CGI Server/Client UDP

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Server/Client UDP

Pate
Beiträge gesamt: 1

15. Sep 2007, 18:39
Beitrag # 1 von 1
Bewertung:
(3373 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

So wie ich in diesem Forum der Perl-Community neu bin, so neu ist auch für mich nach wie vor der Umgang mit dieser Programmiersprache.
Ich arbeite derzeit an einem Server-Client Programm, dass auf der Basis von UDP IP-Pakete übers Netz verschicken soll. Bekanntlich ist UDP eine unsichere Verbindung, die auch bewusst gewählt worden ist. Der Server soll die vom Client verschickten Pakete zählen und in einem Log-File festhalten.

Mein Problem ist nun dieses: Weil UDP bekanntlich unsicher ist und Pakete entweder verloren gehen oder verspätet ankommen, habe ich bewusst einen Timeout eingebaut, der aber irgendwie nicht so recht greift. In meinem kleinen Versuchs-Netz habe ich vom Client 8 Pakete verschickt und die ersten drei sind beim Server angekommen, aber danach bleibt er hängen, d. h. die Zeile


if ([email protected] and [email protected]!~ /timeout/) {
$log->logVerbose("-----!!! TIMEOUT !!!-----"); }


kommt nicht zur Geltung.
Es ist eindeutig ein Deadlock vorhanden, aber wie kann ich ihn beheben? Was habe ich übersehen? Wie sieht die Lösung aus? Vielleicht kann jemand von Euch mir einen Tipp bzw. Lösungsvorschlag bieten.

Zur Übersicht poste ich den entscheidenden Ausschnitt:
Code
$ipcount = 0; 
while($data = $server->recv()) {
($total, $actual, $realdata) = split('_t_', $data);
$time_out = ((($total-$actual)*$waitTime)+$delayNet);

if($data eq 'Thank You'){
last;
}else{
eval{
local $SIG{ALRM} = sub { die "timeout" };
alarm($time_out);

eval{
$digest = md5_base64($realdata);
$log->logVerbose("RECV ".length($data)." bytes (MD5 $digest) from ".$server->getSenderhost().":".$server->getSenderport()." | (".($actual+1)." of $total)");
$ipcount++;
};
alarm(0.0);
};
}

if([email protected] and [email protected] !~ /timeout/) {
$log->logVerbose("-----!!! TIMEOUT !!!-----");
#$last;
}

Danke mal für den, der mir hilft, vor lauter Bäume den Wald wieder zu sehen! Wink
[email protected]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
29.10.2020

Ortsunabhängig
Donnerstag, 29. Okt. 2020, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. 30-minütigen Webinar das neueste Produkt aus dem Hause Enfocus vor. Enfocus bringt mit BoardingPass eine pfiffige Lösung auf den Markt, welche eingehende Daten auf die wichtigsten druckrelevanten Kriterien hin gleich im Mail-Browser prüfen lässt. Mit BoardingPass sind auch Kundenberater und Avor-/Vertriebs-Mitarbeiter in der Lage, eingegangene Druckdaten innerhalb ihres Mail-Programmes sofort zu prüfen und dem Auftraggeber eine leicht verständliche Rückmeldung über diese zu geben. Die Druckdaten müssen also gar nicht erst über den internen Workflow des Druckdienstleisters laufen, sondern können direkt auf druckrelevante Kriterien geprüft und auch begutachtet werden.

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=292

Enfocus BoardingPass
Veranstaltungen
02.11.2020 - 03.11.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Montag, 02. Nov. 2020, 08.30 Uhr - Dienstag, 03. Nov. 2020, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Preis: CHF 1'400.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/desktop-publishing/adobe-indesign-cc/kurs-indesign-cc-basic

Neuste Foreneinträge


Warum kommt Fehlermeldung "Wacom-Treiber" beim Start?

Affinity Designer Objekte auswählen

Bestimmte PDF-Kommentare löschen

Affinity Photo und Photoshop: HSL-Farbbereich als Maske speichern

Buchdateien kopieren

Werkzeugleiste und Bedienfelder sind verschwunden

Wie importiere ich eine Word Datei mit Fussnoten in Indesign?

PDF Export mit Briefpapier einfügen

Pantone - reiner Buntaufbau

Flächendeckung einer Datei
medienjobs