![]() |
Komponente für LAN-Verbindungen
Liste der Anhänge anzeigen (Anzahl: 2)
(Weis nicht ob Code Library oder hier)
Im Anhang befindet sich eine Komponente, welche: -per UDP Broadcast automatisch alle anderen Komponenten im LAN aufspürt und sich zu denen verbindet -eine TCP-Verbindung zu jeder anderen Komponente hat (wenn gewünscht) -Text, Zahlen oder Streams senden und natürlich auch empfangen kann -inkl. UserListe -mittels indirekter UDP-Port-Verwaltung auch mehrere Clients auf einem Rechner ermöglicht mehr fällt mir jetzt nicht ein Ein kleines Beispiel hängt auch an. Ja, und es sind zwei Komponenten, die eine TLanConnectStream hat über TLanConnect nur die Erweiterung der Streams Prinzipiell kann man die Komponente instanzieren, einen UserNamen vergeben und aktivieren und bekommt über OnChangeUser (+TLanConnect.Clientusers oder TLanConnect.Clientsockets) schon mitgeteilt wer noch im LAN zur Verfügung ist. An diejenigen kann man dann per SendText, SendNumber,... Sendxxx etwas verschicken. Die Glücklichen erhalten die Nachricht in den dazugehörigen OnRecievexxx-Ereignissen. Das war dann auch schon alles. Man kann wie gesagt auch Streams senden. Aber hier liegt der Teufel drin (deswegen auch noch keiner 1-er Version). Derzeit funktioniert zwar alles, aber mal sehen, wo der nächtse Fehler auftritt. Achtung: Man muss die Streams nach dem Senden immer selber freigeben (auf das Ereignis warten)! Kurze Funktionserklärung (was macht die Komponente im Hintergrund am Anfang): 1. Einrichten eines TCP-ServerSockets 2. Einrichten eines UDP-Sockets auf vereinbarter Portzahl oder indirekt auf einem anderne Port und anmelden bei der anscheinend vorhandenen anderen Instanz, welche den Port schon belegt (Indirekter UDP-Modus) 3. Versenden von BroadCast-Messages mit LanName und TCP-ServerSocket-Portnummer 4. Darauf reagieren alle Komponenten im LAN, welche denselben LANNamen benutzen und Verbinden sich mittels TCP zum ServerSocket 5. Austausch von Usernamen und Hostnamen 6. ab hier kann gesendet werden Eigenschaften: -auschließliche Verwendung von WINSOCK (WinAPI) -Alle TCP-clients einer Komponente benutzen den gleichen Port -komplett ereignissgesteuert (allerdings mit Hagens Delay-Funktion [ohne Verwendung von TApplication], wenn der Socket zum Schreiben blockiert ist) -keine Verwendung von Threads (kann man aber problemlos in einen Thread legen) So, ich glaube ich habe erstmal alles. (genauere Erklärungen kommen vielleicht noch) |
Re: Komponente für LAN-Verbindungen
Hallo,
hab deine kompo mal installiert und dann das test proggi compiliert und laufen gelassen, er erkennt die user im LAN über UDP aber die datei kommt nirgends an und texte kann ich auch keine versenden. MfG - Ghost007 |
Re: Komponente für LAN-Verbindungen
Ja, du musst wahrscheinlich noch die User in der Listbox auswählen, an die du senden willst
(Sorry, die Erklärung habe ich nicht erwähnt) |
Re: Komponente für LAN-Verbindungen
Hi,
habs nu nochmal getestet. Also das text senden geht nun. Bei dem datei senden, kommt zwar beim ziel n save dialog, jedoch wenn man nen datei namen eingibt und auf "speichern" klickt, kommt n error "Stream read Error" MfG - Ghost007 |
Re: Komponente für LAN-Verbindungen
Zitat:
Dabei ist Stream ein TFilestream, was kurz vorher geöffnet wurde (Die Position ist bei 0) :idea: Ahh, wenn die zu übertragene Datei klein ist, wird am Empfänger keine Temp-Datei angelegt, sondern nur ein TMemorystream. Der wird nicht zurückgesetzt. (Ich änder gleich oben ab.) PS: Danke fürs Testen :thumb: |
Re: Komponente für LAN-Verbindungen
Hi,
eine frage hätte ich noch, kann man das ganze auch über s inet nutzen ? MfG - Ghost007 P.S.: Find die kompo egtl recht praktisch, bin grad dabei mich einzuarbeiten ;) |
Re: Komponente für LAN-Verbindungen
Zitat:
Broadcast heisst allerdings nur, dass ein Router, wenn er will, die Nachricht einfach in jede Richtung weiter schickt (sogar zum Ausgangsrechner zurück). "Wollen" tut default-mäßig jeder Router, den man sich zu Hause so hinstellt. Aber diese Aktion macht kein Router im Internet. Das bedeutet, spätestens beim ISP ist Schluss mit Broadcast. Wäre auch eine ziemliche Überlastung des Netzes, wenn alle Broadcast-Messages über die ganze Welt laufen würden. Letztenendes heisst ja Broadcast nur als Zieladresse 255.255.255.255 zu nehmen, und jenachdem der Router macht es, oder er macht es nicht. Fürs Internet bräuchte man dann irgendwo wieder einen Server, bei dem sich alle Clients anmelden. Zitat:
Wenn du häufig große Dateien (bzw. Streams) versenden willst, lohnt es sich, die Kompo in ein Thread reinzulegen. |
Re: Komponente für LAN-Verbindungen
Hi,
ja das mit dem broadcast hatte ich vergessen, wegen der internet fähigkeit de kompo. Wie du schon sagst, wenn du mal zeit hast, wäre ne dokumentation hilfreich ;) MfG - Ghost007 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz