Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Chat über temp. Textdatei (https://www.delphipraxis.net/31817-chat-ueber-temp-textdatei.html)

Evian 14. Okt 2004 12:56


Chat über temp. Textdatei
 
Hallo Zusammen,

ich studiere zur Zeit Wirtschaftsinformatik und es kommt schon das eine oder andere mal vor, dass das was der Prof. da so erzählt entweder "arg trocken", "total *gähn*", oder schon 100mal gehört wurde. So geht es nicht nur mir, sondern auch ein paar anderen Studenten und so habe ich mir gedacht einen kleinen Chat zu coden, mit dem wir die "wichtigeren Dinge des Lebens" untereinander austauschen könnten. Gesagt -> Getan! Der Chat ist fertig, nur habe ich inzwischen mitbekommen, dass so gut wie alle Ports im Rechenzentrum gesperrt sind und somitt ein Chat über TCP/IP unmöglich wird. Nun sind wir dabei uns zu überlegen, wie man den Chat trozdem realisieren könnte und sind auf die Idee gekommen, das Ganze über eine temporäre Textdatei zu machen, die auf einem für alle zugänglichen Netzlaufwerk liegt. Das Laufwerk existiert und es hätten auch alle Lese/Schreibrechte, nur denke ich, dass das ganze relativ schwierig zu realisieren ist, wenn man dafür sorgen will, dass auch alle "Chatter" immer alle Chatnachrichten bekommen sollen. Also ich meine, es ist recht schwierig für einen Clienten zu überprüfen, ob schon alle anderen Clients die letzte Nachricht aus der Textdatei gelesen haben und ob nun die Datei mit einem neuen Inhalt überschrieben werden kann. An sich, mit einem Timer immer den Text auslesen bzw. zu überschreiben, wäre das Leichtestete... aber wäre das Chatvergnügen sicherlich nicht das Größte, wenn des öfteren nicht alle Nachrichten ankommen würden. Einfach immer nur die neuen Nachrichten hinten ranzuhängen, an den Textdateiinhalt wäre auch nicht besonders clever, weil dann die Dateigröße relativ schnell sehr groß werden würde und dann wäre eine ordenliche Kommunikation auch nicht mehr gewerleistet.

Also meine Frage nun, hat jemand eine Idee, wie man das möglichst Clever angehen könnte bzw. ob es noch andere Möglichkeiten gibt um eine Kommunikation zu ermöglichen?! Ich hab mich noch nicht so viel mit Datenbanken beschäftigt, aber könnte man da nicht irgenwie was machen... also quasie mit einer exportierten Datenbankstruktur oder?!


Also wenn wer ne Idee hat, würde ich mich sehr über die Hilfe freuen!!!!!

gruss

Evian

Fourcorner 14. Okt 2004 13:34

Re: Chat über temp. Textdatei
 
Solly,
wenn du nur text in die Datei schreibst wird die datei bestimmt nicht so groß. Falls dies doch der fall ist, kannst du ja am ende der Datei ein anmerkung machen, aus einer zweiten datei zu lesen, und (nachdem du dir sicher bist, dass die Datei nicht meht gelesen wird) löschen.

Das problem an der ganzen sache ist, das immer nur ein PC gleichzeitig auf die Datei zugreifen kann.

Jens Schumann 14. Okt 2004 13:43

Re: Chat über temp. Textdatei
 
Zitat:

Zitat von Evian
dass so gut wie alle Ports im Rechenzentrum gesperrt

Dann such Dir doch einen freien Port! Oder nimm einen Rechern auf dem kein WebServer läuft. Dann kannst Du auch Port 80 verwenden. Ich nehme mal an, dass Port 80 frei ist.

Elite 14. Okt 2004 13:46

Re: Chat über temp. Textdatei
 
Genau in die Richtung würde ich auch versuchen, voran zu kommen. Nimm doch einen der wenigen Ports, die frei sind - auch wenn es halt gerade Port 21 oder 80 sein muss. na und?
Setze an den Anfang jeder Textmessage (generell jeder Kommunikationsmessage deiner Anwendung) 4 Indikator Bytes, die angeben, ob die Daten für deinen Chat bestimmt sind oder irgendwas anderes bedeuten. Dann verarbeitest du nur diese und voilà: der Chat läuft.

SleepyMaster 14. Okt 2004 16:43

Re: Chat über temp. Textdatei
 
Vielleich hilf dir das ja ein wenig: ftp://sleepymaster.dyndns.org/UDP%20Chat.rar

Über UDP - Der Quelltext ist aber wirklich allerübelste Sau

endeffects 15. Okt 2004 10:55

Re: Chat über temp. Textdatei
 
du kannst auch daten über das dns protocol verschicken
oder die ganze geschichte anderweitig tunneln

Evian 15. Okt 2004 11:39

Re: Chat über temp. Textdatei
 
Danke erstmal für die Ideen!

@Fourcorner: Es muss niemand immer auf die Datei zugreifen, sondern jeder nur sehr kurz, wenn man den Kontent ließt bzw. schreibt. Man kann ja den Contontent z.B. in eine Liste von Strings laden. Wenn ich nun aber immer den neuen Text unten anhänge, dann wird die Datei absolut betrachtet nicht sehr groß, aber wenn ich(bzw. alle Clients) alle 500Millisek. schauen, ob der Kontent sich verändert hat, dann enteht selbst bei 10KB doch ein relativ hoher traffic. Würde immer nur die Aktuelle Chatnachricht enthalten sein, wäre das zu verkraften.

@Elite u. Jens Schumann.: Wir haben an der Uni einen Herren, der wohl sehr um die Sicherheit seiner IT besorgt ist und der das System wirklich krass abgesichert hat. Alle bis auf die Standartports(FTP, http etc.) sind gesperrt und wenn man über die Standartports kommunizieren will, erkennt das das System und verbietet es, dass mehr als ein Programm(Server oder Clientappl.) über diesen Port kommuniziert. Leider gibt es für jeden offenen Port ein Programm was da läuft und es einfach zu beenden würde der Prof. schnell an dem Lektorrechner erkennen. Nicht mal Pingen ist möglich... keine Ahnung was da gemacht wurde.

@SleepyMaster: Ich schau mir mal den UDP Chat an, kann mir aber irgendwie nicht so richtig vorstellen, dass das bei der Absicherung nicht mit bedacht wurde.

@endeffects: Kannst Du das vielleicht noch ein bischen genauer erklären?! Hab keine Ahnung, wioe Du das meinst.

gruss


Evian

fiasko 15. Okt 2004 11:48

Re: Chat über temp. Textdatei
 
Zitat:

Zitat von Evian
@endeffects: Kannst Du das vielleicht noch ein bischen genauer erklären?! Hab keine Ahnung, wioe Du das meinst.

Ganz einfach: du mißbrauchst das DNS Protokoll indem du die Chat-Daten in DNS Abfragen verpackst. Wenn jemand etwas sagt, dann machste einfach ein DNS Query der Arte blaah.codiert.text.blah.meine-domain.net und ein frisierter DNS Server verarbeitet das dann als Chat-Text. Die Clients müssen dann natürlich noch regelmäßig den Server pollen und der gibt in einer speziellen Anfrage den neuen Text als TXT Record zurück.


Ich denke aber so kompliziert wirst du es nicht machen wollen/können/müssen. Wenn HTTPS Zugelassen ist dann ist das das vernünftigste Protokoll, was du für deine Sachen mißbrauchen kannst - auch wenn ein Proxy dazwischen hängt. Du sagst dem Proxy einfach CONNECTe mich mal mit dem und dem Rechner und dann läßt er alles ungesehen durch - das einzige ist das das CONNECT üblicherweise auf ein (paar) well known Port(s) beschränkt ist.

Fourcorner 15. Okt 2004 13:09

Re: Chat über temp. Textdatei
 
Solly,
neue Idee. Du schreibst eine Datei, in der steht, wann der letzte Eintrag hinzugefügt wurde.
In eine zweite Datei schreibst du den Chat. Befor man nun die Chatdatei öffnet, überprüft man zuerst, ob etwas neues in den chat gekommen ist(diese Datei ist ja nur ein DateTime-Eintrag, ergo sehr klein).

fiasko 15. Okt 2004 14:05

Re: Chat über temp. Textdatei
 
Hallo,

mir ist noch etwas eingefallen: wenn das Windows Netzwerk freigegeben ist sollte das ganze mit Named Pipes gehen - soweit ich weiß gehen die auch zwischen 2 Winplöd Rechnern. Such am besten mal im DP-Archiv danach...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz