perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 31
Click for quality!




08.02.2012 / 22:56

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragMultithread
Seitenanfang
Hallo,

ich habe mir jetzt seit über 2 monaten den kopf darüber zerbrochen,ich möchte zwei dinge aufeinmal in perl geschehen lassen.

bsp.

einen clienten,für einen x beliebigen chat.

ich möchte text empfangen und schreiben gleichzeitig.

ich danke euch

:D

Datum: 09.07.2005-19:43

Beitragre: Multithread
Seitenanfang
ok anders:

was genau ist multithread,kann es mir wer erklären?

Datum: 09.07.2005-21:57

Beitragre: Multithread
Seitenanfang
Hi,

ein Beispiel für Multithreading ist, wenn Du Cluster-Software schreibst. Nehmen wir an Dein Cluster hat 100 Rechner mit je 4 CPUs. Dein Programm muss also geforkte Prozesse an verschiedene CPUs leiten, damit die "gleichzeitig" ihre Arbeit verrichten. Es erstellt verschiedene Threads.

Ein anderes Beispiel waren die ersten 64 Bit CPUs, die ja eigentlich Doppel 32er waren. Wenn man das richtig ausnutzen wollte hat man die Objekte so schlank gehalten, dass man sie gut aufteilen konnte.

Es gibt noch einige andere Beispiele, aber so eingehend habe ich mich mit diesem Thema noch gar nicht befasst.

Das was Du da angesprochen hat ist nicht wirklich Multithreading, es wird Dir nur so vorkommen, weil Du das Gefühl hast, dass es gleichzeitig passiert. Tatsächlich ist das ja nicht so. Würden wir genau so schnell denken, lesen und tippen können wie ein Rechner, dann würde man einen Chat über ein Multithreading realisieren müssen.

-uw

Datum: 10.07.2005-04:51

Beitragre: Multithread
Seitenanfang
vielen dank :)

was würdest du mir raten,was kann ich tun um:

a) schreiben
b) empfangen

auf einmal zu können?

Datum: 10.07.2005-09:23

Beitragre: Multithread
Seitenanfang
Hi,

eine Möglichkeit wäre eine Endlosschleife zu programmieren, die über einen BeendenButton oder die Tastenkombi Ctrl+Shift+Esc verlassen werden kann. Innerhalb dieser Schleife wird in regelmäßigen Abständen geprüft, ob am Socket neue Daten eingetroffen sind, die dann ans Display geschickt werden. Und falls das *Ereignis*: 0x13 im Eingabefeld oder AbsendenButton gedrückt eintritt, dann werden diese an den ausgehenden Socket geschickt.

Also jetzt, wo ich mir noch eimal richtig Gedanken darüber gemacht habe, ist echtes Multithreading vielleicht wirklich die beste Lösung, weil man dann eine bessere Kontrolle hat, bzw. die beiden Teile "rein" und "raus" sich nicht gegenseiteig deperformieren.

Für mich persönlich wäre also eine andere Variante, bei der zwei bleibende Kinder geforkt werden, die elegantere, weil ich auch ganz gerne die PIDs im Auge behalte. Das eine Kind kümmert sich um EingangsDaten plus Display, das andere Kind übernimmt den Part ausgehende Daten. Wenn eines der Kinder abschmiert, dann bekommst Du das mit und kannst zur Sicherheit *alle* Verbindungen zu dem Host, bei dem das Problem aufgetreten ist, kappen. Oder Du schickst ihm sonstwas an seinen PiratenPort, hehe.

Bei solchen Sachen, wo Benutzer Daten eingeben können ist es immens wichtig den Inhalt genau zu prüfen. Es könnte beispielsweise sein, dass ich mir ein Skript schreibe, welches an Deinen Chat einen ShellCode sendet. Paff, und dann schmiert bei Deinem Chat nur der "rein" Teil ab, was die anderen Prozesse ja im Auge behalten und sofort Gegenmaßnahmen ergreifen können.

Ob ein Bufferoverflow unter Perl (unter bestimmten Konditionen) tatsächlich möglich ist, da bin ich mir noch nicht so sicher, daran arbeite ich noch. Ich könnte mir vorstellen, das man den Interpreter vielleicht aus dem Tritt bringen kann, ist aber eine reine Mutmaßung. ;-)

Aber ein (D)DoS ist für einen Webserver auch nicht zu verachten, und wenn Dir einer Deinen ganzen Speicher vollknallt? Wenn's die richtige Seite trifft, dann kannn das Millionen von Dollars kosten und der Anbieter ist vielleicht pleite.

-uw

Datum: 11.07.2005-13:59

-






-
-