IM im LAN verschicken, wobei Aktive Benutzer angezeigt werde
Hallo,
ich habe schon fast alle Themen durch hier aber noch nicht wirklich was passendes gefunden. ich möchte in meine software eine art chat einbauen, die aktive benutzer anzeigt und man durch klick af diese eine nachricht schicken kann das die user einen Server und Client dienst brauchen ist klar, allerdings möchte ich nur benutzer angezeigt bekommen die die software gestartet haben.... Danke, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
Das hier sollte dich mal weiterbringen: Einen Chat mit den Sockets programmieren Wenigstens den Ansatz solltest du verwenden können... Greetz alcaeus |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Wenn ich mich richtig erinnere, haben in der Freeware- bzw. OpenSource-Sparte schon mehrere Leute ein Chat-Programm gepostet.
MfG Binärbaum |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Danke, ich werde mir die sachen mal anschauen...
Gruss, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Hallo nochmal zurück auf die chat-sache...
die sachen die ich mir jetzt runtergeladen habe sind alle recht interessant allerdings kann ich mit denen nicht so viel anfangen, mein problem ist: -Die software wird bsp. auf 5 rechnern gestartet --ich möchte keinen zentralen server am laufen haben. (muss also irgendwie ind die sw integriert sein) --wie bekomme ich es dann hin das die sw die anderen online-user anzeigt? --was für T"Komponenten" muss ich nutzen und wie richte ich sie ein? ---ich möchte um einen user eine nachricht zu schicken nicht erst seine ip adresse angeben, sondern den namen der im feld steht (der "irgendwie" ge-looku-pt wurde) anklicken, schreiben und weg. blicke in dieser sache leider garnicht durch... bitte um hilfe.... Danke, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Hallo, so ich habe mir nun viele sachen und themen angeschaut allerdings habe ich probleme mit dem aufbau.
Prob.1 Ich habe Delphi2005 also kann ich somit nicht mit den Sockets rbeiten und muss Indy (9 oder 10) verwenden Prob.2 Habe mir auch schon die Indy-Demos runtergeladen um den verlauf/code zu verstehen... allerdings bekomme ich beim öffnen in Delphi immer probleme das er AThread... nicht zuordnen bzw. finden kann und er sie entfernen will Prob.3 Tutorials habe ich auch nicht wirklich für Indy gefunden Prob.4 Meine anforderungen haben sich mittlerweile erhöht D.h. --> Client <--> Server lösung --> Aktive und inaktive benutzer sollen angezeigt werden --> Nachrichten auch an Inaktive Benutzer (Empfang erfolgt beim online gehen --> Datei/en sollen der nachricht angehängt werden können --> P.S. Das alles soll im LAN funktionieren, übers INet ist unwichtig Vielen Dank für jeden Tip, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Du hast vorher geschrieben, dass du keinen zentralen Server haben willst. Wenn du aber machen willst, dass offline User beim online gehen die Nachrichten empfangen wirst du damit wahrscheinlich schwierigkeiten haben. Wo willst du die Nachrichten speichern??
mfg http://www.msigna.de.vu/1.jpg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
@SKolberg: Schau Dir mal Apples-Bonjour Technologie an...
Mit dem sperichern der Nachrichten wirds tatsächlich schwer. |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
So ein Teil wäre schon schön (habe noch nicht angefangen) aber eine Idee habe ich schon.
Zitat:
Zitat:
So ala: Client verbindet und sendet: $Hello meinnickname| Alle anderen nehmen es auf und antworten z.B. mit: $MyINFO nickname| Text an alle senden mit: $To ALL: From meinnick: dies könnte ein text sein.| Text an User7 senden mit: $To User7: From meinnick: dies könnte auch ein Text sein!| Client trennt sich: $Quit meinnickname| nur so als Idee, ob sie gut ist weiss ich nicht aber euer feedback wirds zeigen :mrgreen: Edit: Dass keine Missverständnisse auftreten, er schrieb im LAN und da sollte IMHO Broadcast kein Problem sein. |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Idee: Um die Nachrichten OHNE Server auch später zukommbar zu machen (geiles Wort :)), schick die Nachricht doch an alle - so eine Art P2P Chat...
Sobald die "Zielperson" online geht, schicken alle die Nachricht vom Absender los und der Empfänger hat sie dann |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
UDP und Broadcast ist ja eigentlich nicht schlecht. Aber wenn du 100 Rechner im Netzwerk hast und nur 5 haben an der Diskussion teil (also nur 5 haben das Chatprog an), müllt es dann nicht bei den 95 anderen auch den Traffic zu? Also dass alle im Netzwerk die Message kriegen aber nur die wo online sind empfangen es auch wirklich. Das ist dann etwas "verschwenderisch"
mfg mr47 http://www.msigna.de.vu/1.jpg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
Ausserdem in Zeiten von 100MBit+ :cyclops: ... |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Ok in dem Fall ist UDP eine recht einfache Variante. Du musst nur bei den Proggies umsetzen, dass wenn es heißt $Message an USer xy, dass dann alle anderen die NICHT xy heißen die Nachricht ignoieren. Ich hatte auch mal einen UDP-Chat programmiert. Das ist wirklich einfach...
mfg mr47 http://www.msigna.de.vu/1.jpg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
Zitat:
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
:gruebel: also wie gesgat ich denke mal server muss sein...
Server hat DB/File anbindung in dem die User stehen. --Client @Server hallo ich User:XYZ bin da; Server setzt in DB/File User auf Aktiv/True Andere gehen Online Server sendet @ALL ...,...,... User sind Online (beim client werden user in ListBox 'Grün' Wenn nachricht an offline-User server speichert nachricht: Von:.... An:.... Message:...... in DB/File ?! --nachricht sowieso nur an markierte user --Wenn datei anhängt wir mitgespeichert und später weitergeleitet. wäre das so machbar?? so ungefähr wie ICQ halt :gruebel: Danke Danke, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
EDIT: Kurz und knackig ;) |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
ok das mit den offline messages wird wohl nur bzw. am einfachsten mit einem Server zu erreichen sein.
Um aber noch einmal auf den Broadcast zurückzukommen, ich fänd das idiotisch. Also das immer alles an alle verschickt werden soll. Spätestens bei Dateien wirds störend (Dateitauschsollte ja auch eingebunden sein). Ich persönlich würde mir ein kleines arp versuchen zu basteln. heisst User A geht online mit dem Chat und sendet einen _einmaligen_ broadcast: >@all Ich User:'Username' bin online. IP:'192.168.1.14'.<. Alle die den Chat an haben antworten darauf mit ihrer eigenen IP Adresse, worauf sich der User eine eigene Routing Tabelle zusammenbaut: User B:192.... | User C:192... Dann werden alle weiteren Nachrichten nur noch an den User direkt versendet. Das wäre mein Ansatz. :) |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
Dateiversand würde dann natürlich deaktiviert... |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Ja aber wenn du eine Datei an EINEN User senden willst kriegen über Broadcast ALLE User die Datei, aber nur einer nimmt sie wirklich an. Und das schlägt dann langsam auf die Verbindung.... Ich glaube das meinte Antigo
mfg mr47 http://www.msigna.de.vu/1.jpg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
Die wird schön brav per TCP verschickt... UDP wollte ich eigentlich überhaupt nicht einsetzen - ich wollte alles per TCP machen (jeder macht sich untereinander selbst bekannt) |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Richtig. Aber das Problem ist das du, wenn du dich anmeldest nicht weist wer noch alles online ist! Und ohne Server, musst du die nachricht an alle online User senden. Deshalb sendet man über UDP die Anfrage "Hallo wer ist online? Sendet die Antwort an <ip>" und jeder andere ONLINE User sendet per TCP, dass er online ist. Dann hast du eine art Liste bei jedem User, wer alles On ist, und kannst dann via TCP die Nachrichten versenden. UDP dient nur als "Konfigurationsprotokoll"
mfg mr47 http://www.msigna.de.vu/1.jpg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Klingt sehr gut :-), bin schon auf das Tool im OpenSource/Freeware bereich gespannt :thumb:
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Ich hab noch ne Idee zu den Nachrichten an offline User:
Also man könnte es so machen, dass die Nachricht an einen User der Offline ist solange beim Versender bleibt, bis der Empfänger online geht. Das hat den Nachteil, dass der Empfänger nur die Message kriegen kann, solange der Sender noch online ist... :arrow: Ansonsten gehts nur mit Server... mfg http://www.msigna.de.vu/1.jpg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Das hört sich alles sehr interessant an, allerdings wäre es nett wenn ihr mir ein paar links oder tips geben könntet,
bin noch ziemlich newbie in delphi, und verfahre nach dem "learning by doing" prinzip. wenn ich ein paar beispiele hätte damit ich die prozeduren verstehen kann.. Danke, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Das hört sich alles sehr interessant an, allerdings wäre es nett wenn ihr mir ein paar links oder tips geben könntet,
bin noch ziemlich newbie in delphi, und verfahre nach dem "learning by doing" prinzip. wenn ich ein paar beispiele hätte damit ich die prozeduren verstehen kann.. Danke, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Einmal reicht doch auch :mrgreen:
Also UDP einzustellen ist sehr einfach. Einen Server und einen Client (jeweils UDP) auf die Form. Die sollten auf dem gleichen Port arbeiten :wink: . Dann bei Cleint und Server, Broadcast auf true und als Host (Kann sein dass ich mich irre) 255.255.255.0 ... Bin mir aber nicht mehr 100 % sicher. Mit
Delphi-Quellcode:
kanste blabla dann an alle versenden (weils ja auf Broadcast funzt).
idUdpClient1.Send('blabla');
Aber als erstes würd ich dir ma in Excel oder so ne Tabelle mit allen Befehlen die man versenden kann machen. Sonst blickst du (ich sprech aus erfahrung) nacher nicht mehr durch. Einfach alle Befehle auflisten und was der Empfänger des Befehls dann machen soll. Und dann gehts an die Implementierung.... mfg http://www.msigna.de.vu/1.jpg edit: Also die Tabelle z.B. so: 1. $Befehl-xy(parameter: ip) - Bewirkt dass alle User ihre Ip senden oder so... |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
gut ich werd mir das mal alles aufschreiben, und dann mal anfangen was zusammen zu "basteln" was ich so auch noch nicht ganz verstehe ist das mit der listbox: wie bekomme ich die user hinein (müsste über add.lines gehen?!) und wie markiere ich sie als online/offline (farblich wäre ja nicht verkehrt). Abgesehen davon ich weiss ja so ungefähr was ich haben will und was "er" können soll, worüber muss/sollte ich mir denn vorher im genaueren gedanken machen, bzw. was ist zu bedenken?
Mfg, Steve |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Ich empfehle dir noch für alles was man mehrmals im Prog brauchen kann ne eigene Prozedur/Funktion zu schreiben. Dadurch wird das ganze viel übersichtlicher. Also z.B. zum Verbinden ne Prozedure, eine fürs User auflisten usw...
mfg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
von broadcasts rate ich ab.
broadcasts werden immer an alle clients verschickt die im subnetz sind. das macht also unnötig last im netz. verwendet lieber multicasts, diese sind ähnlich wie broadcasts nur das "bessere" switche diese an die richtigen clients verschicken. (igmp snooping muss unterstützt werden und eingeschaltet sein) indy hat passende komponenten dafür gruss |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
mfg |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Zitat:
meine antwort bezog sich auch indirekt auf einen anderen post. Zitat:
wenn du das abo hast dann bekommst du alle streams die an diese gruppe gesendete werden. die streams sind dann eigendlich udp pakete. diese werden aber an bestimmte reserviert ip's gesendet. 224.0.0.0 bis 239.255.255.255 mehr dazu: http://www.iana.org/assignments/multicast-addresses mc werden also u.a. für streaming geschichten eingesetzt. mc sind aber auch gefährlich wenn viele grosse daten übertragen werden sollen. unterstützen die switch im lan nicht igmp-snooping, funktionieren die switche als hubs. |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Aha! Man lernt nie aus. Hörts sich interessant an. Ich les mir das mal durch...
mfg :hi: |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
ich hab grade was ähnliches vor, aber ich hab noch nie mit diesen $-Befehlen gearbeitet, kann mir einer sagen, wie ich die einbauen muss :?:
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
In der OpenSource habe ich eine Komponente, die alle Benutzernamen auflisten kann.
(ProfessionalConnect) Florian |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
brauch ich mit ProfessionalConnect immernoch den Indy-Server bzw. -Client mit dem ich zur Zeit arbeite oder ersetzt PC die?
|
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
Die Komponenten verwenden intern die Sockets. Also brauchst du keine Indys mehr.
Florian |
Re: IM im LAN verschicken, wobei Aktive Benutzer angezeigt w
OK, danke, dann probier ichs gleich mal aus
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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