Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Chat über von den Sockets abgeleiteten Komponenten (https://www.delphipraxis.net/45613-chat-ueber-von-den-sockets-abgeleiteten-komponenten.html)

Zacherl 9. Mai 2005 12:41


Chat über von den Sockets abgeleiteten Komponenten
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
ich habe in lezter Zeit immer mal wieder an diesem Chat weitergearbeitet und viele (vielleicht auch unütze Funktionen) eingebaut.

Der Chat basiert auf den Komponenten TChatServer und TChatClient (Source liegt bei), die ich selbst von TServerSocket und TClientSocket abgeleitet habe. Leider sind die Komponenten noch ein wenig "instabil" und ich würde mich freuen, wenn jemand diese Komponenten auf INDY Basis umprogrammieren könnte oder zumindest "stabilisieren" könnte.
Die wichtigeste Funktion dieser Komponenten ist, dass sie erst dann ein OnFullText oder ein OnCommand Ereigniss auslösen, wenn über SendFullText oder SendCommands Text gesendet und vollständig angekommen ist. Dazu wird vor dem eigentlichen Text nocht die Textlänge gesendet und die ankommenden Teilstrings zusammengesetzt.

Fertige Funktionen: (Client)

- Verbinden zum Server
- Einstellen von Port, Ip des Servers und Name des Benutzers
- Dateien senden
- Private Nachrichten
- Public Nachrichten
- Speichern von Serverdaten in einer Liste
- Abfragen der OnlineUsers
- Trennen vom Server

Fertige Funktionen: (Server)

- Server starten
- Server schließen
- Port zum Chatten und zum Dateisenden/empfangen ändern
- Servername einstellen
- Einzelne Clients kicken, sperren, freischalten
- Speicherung aller Dateitransfers in einer Liste + Achivierung der Dateien

Unfertige oder geplante Funktionen: (Server)

- Eintragen in einer OnlineListe über PHP
- Löschen des Listeneintrages, wenn Server schließt ODER wenn Internetverbindung trennt

Unfertige oder geplante Funktionen: (Client)

- [angfangen] Abfragen der OnlineListe und speichern im INI Format (aus Source ersehbar)

Der Grund, warum ich diesen Chat als Open Source ins Internet gestellt habe, ist vor Allem, weil ich hoffe, dass jemand an diesem weiterarbeitet und/oder Tipps zur Verbesserung geben kann.
ICH FREUE MICH ÜBER JEDEN VORSCHLAG ZU DEN UNFERTIGEN FUNKTIONEN UND ÜBER VERBESSERUNGSVORSCHLÄGE ZU DEN VORHANDENEN! :P

In dem Komponenten Package sind außer den Chatkomponenten noch weitere, unfertige oder nicht funktionsfähige Komponenten enthalten. (Hatte keine Zeit/Lust die zu entfernen :-D ) Ich bitte darum diese nicht, oder nur auf eigene Verantwortung zu verwenden!

Alle Quelltexte sind unter Delphi 7 Personal entstanden.

Ich wünsche viel Spaß !?!

[edit]
Die neuen Versionen gibt es nur noch als Freeware: hier.
[/edit]

Florian

PierreB 9. Mai 2005 12:49

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hey,

gefällt mir ganz gut den Chat. Sebr viele Einstellungsmöglichkeiten, echt klasse. :thumb:

Hab local getestet, er funzt sogar. ;)

Kurze Frage: Was ist o. wo legt man das "IMT-Administratorkennwort" fest ?

Zacherl 9. Mai 2005 12:57

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Das kann man nicht festlegen!
ist "Janeway8472"
man über die Registerseite "Kommando In/Outoput Commands an den Server senden.
Wenn nicht die beiden Checkboxen gesetzt sind, könnte man z.B. den Command zum erfolgreichen Senden einer Datei schicken, und der Server würde "denken", er hätte grade eine Datei versendet.

PierreB 9. Mai 2005 13:02

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Zitat:

ist "Janeway8472"
Willst du damit die Selbstzerstörung einleiten ? :mrgreen:

Noch'n Tipp: Vielleicht solltest du dem Systrayicon deines Chattes noch ein Hint hinzufügen, etwas wie viele User gerade online sind oder sowas. Vielleicht könntest dus noch so machen das das Icon erst erscheint wenn man das Fenster minimiert, ist aber relativ egal.

Sonst gutes Programm :thumb:

Zacherl 9. Mai 2005 13:04

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Danke für das Lob und die Vorschläge!

PS: Das Kennwort hab ich nur zum Spaß gewählt!

Florian

Superfly 10. Mai 2005 20:04

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi Bernd :-D
habe mir dein chat mal geladen bloß bekomme ich eine VIRUS MELDUND!
Nutze FreeAv neuste update von vor 10 minuten :wiejetzt:
Delphi-Quellcode:
C:\DOKUMENTE UND EINSTELLUNGEN\KINGSUPERFLY\DESKTOP\CHAT\CHAT (KOMPONENTEN)\CLIENT.EXE

Enthält verdächtigen Code: Heuristic/Trojan.Downloader

alcaeus 10. Mai 2005 20:11

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi Superfly,

manche Antivirenprogramme sind eben zu fleissig und reagieren schon auf die Socket-Komponenten in Versionen. Schick einfach eine Mail an eine Kontaktadresse von FreeAv, haenge die Echse an und im naechsten Release wird das Programm nicht mehr erkannt werden (normalerweise).

Greetz
alcaeus

Superfly 10. Mai 2005 20:29

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi danke :mrgreen:
werde ich mal machen :roll:
Ok dan teste ich den chat mal :mrgreen:

Superfly 10. Mai 2005 20:54

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi Florian
Jetz muß ich auch mal ein Großes lob ausprechen,echt ein super chat :mrgreen:
wircklich ein guter job.
Ich denke ich werde mir dein chat mal näher ansehen,für open source ist der chat echt sehr gut)
Werde ihn bestimmt selber nutzen!
Habe den chat leider nur lan netzwerck testen können :mrgreen:

Zacherl 11. Mai 2005 18:14

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Danke, nur gibt es hier und da noch ein paar Fehler, die ich momentan am beheben bin.

z.B.:
wenn man zu schnell hintereinander Text abschickt, kriegt der Server das nicht auf die Reihe.
Ich weis zwar, wie man das behebt, (bei den Komponenten die Variable SleepTime im Create Ereigniss auf 1 setzen) aber dann "meckert" er, wenn er grade ne Datei empfängt/sendet, und jemand Text schickt.

Wäre froh, wenn jemand das Problem lösen könnte. :stupid:

Wie gesagt, das Grundgerüst, dass in den Komponenten liegt ist noch sehr instabil.
Ich habe schon eine neue Version vom Programm, die ich bald auch hochladen werde...

Wer nicht alles neu downloaden möchte, kann dann gerne die Update Funktion benutzen :mrgreen:

Florian

Superfly 11. Mai 2005 20:38

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi Florian :-D
baue doch einen timer nur ein,das man erst alle 10 sec ein text senden kann^^
damit sollte das problem sich lösen .
Mal eine andere frage wie hast du dir das mit der Online liste mit der ip zum uplaod gedacht,bzw was sollte alles in der datei stehen auf meinem webspace damit die function auch erfolgreich ist,so läd er zwar ne seite von meinem webspace,aber ich bin leider php coder,bzw html^^

edit: ist bei deiner verdächtigen update function auch der source code download mit enthalten?

Zacherl 12. Mai 2005 13:11

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Also,
bei der Update Funktion werden (wie man aus dem Source von Update.exe erschließen kann) lediglich die Dateien "Update.exe", "Server.exe" und "Client.exe" gedownloaded.
Ich kann nur nicht nachvollziehen, was daran
Zitat:

verdächtig
sein soll. :?:

Das mit der OnlineList ist so:

Es sollte ein php-script auf einem Webserver geben, dass mit dem Chatprogramm aufgerufen wird. (Parameter: ?Name, ?IP, ?Port, ?FilePort, ?Add oder ?Delete)
Dieses soll dann die Daten je nach dem aus der Liste entfernen oder auch zu dieser hinzufügen.
Das ganze soll im INI Format geschehen. Der Aufbau der INI geht aus dem Source vom Client hervor,
da die Funktion zum auswerten der Liste schon vorhanden ist.

Die Probleme :gruebel: sind nur:

1. Ich kann kein php und weis auch nicht, ob das mit dem INI Format geht
2. Was ist, wenn die Internetverbindung getrennt wird, bevor der Server geschlossen wird?
Der Eintrag würde in der OnlineListe verbeliben und nur manuell zu entfernen sein!

Florian

Zacherl 13. Mai 2005 15:50

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich wollte nur kurz Version 3.3 hochladen ...

- Einige Bugs behoben
- Protokoll jetzt annähernd stabil
- Fernwartungsfunktionen hinzugefügt (noch nicht fertig)

Florian

Superfly 13. Mai 2005 15:52

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Zitat:

Zitat von Florian Bernd
Hallo,
ich wollte nur kurz Version 3.3 hochladen ...

- Einige Bugs behoben
- Protokoll jetzt annähernd stabil
- Fernwartungsfunktionen hinzugefügt (noch nicht fertig)

Florian

Hi bernd :-D
schön dan werde ich mal die neuste version testen :mrgreen:

Zacherl 16. Mai 2005 17:30

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bin grade mit ein paar Verbesserungen fertig:

- Neues Transferprotokoll (Komponenten angepasst)
- "Ferwartungsfunktionen" erweitert
- Beim Server kann man jetzt unter Verbindungen ein Kontextmenü öffnen, um einem bestimmten Client eine Nachricht, eine Meldung/Warnung/Frage (über Messagebox) zu senden.

Das neue Protokoll (hab ich DSS genannt) funktioniert eigentlich besser als das alte (SAS) aber es werden immer noch nicht alle Eventualitäten berücksichtigt, wie ein Text ankommt. Daran arbeite ich noch.

Florian

Neuni 16. Mai 2005 18:20

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Zitat:

Zitat von Florian Bernd
Die Probleme :gruebel: sind nur:

1. Ich kann kein php und weis auch nicht, ob das mit dem INI Format geht
2. Was ist, wenn die Internetverbindung getrennt wird, bevor der Server geschlossen wird?
Der Eintrag würde in der OnlineListe verbeliben und nur manuell zu entfernen sein!

Florian

Also bei PHP könnt ich aushelfen. Ist ja nicht sonderlich schwer ne Serverliste zu erstellen.
Wegen dem 2. Problem: Man könnte das so machen, dass der Server alle 10 sek. oder so einen string an den server sendet, und wenn der nicht kommt, dann entfernt das PHP-Script den aus der Liste. Müsste gehen, oder?

Zacherl 17. Mai 2005 14:47

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Danke, das wäre echt nett, wenn du mir ein entsprechendes Script schreiben könntest.
PHP kann ich überhaupt nicht.
Das mit den 10 Sekunden ist auch ne gute Idee.

Die Datei, in der die Server stehen, sollte in etwa folgendes Format haben (wenn das nicht geht bin ich sonst aber auch flexibel. Aber bitte keine Datenbanken verwenden, da mein Anbieter das nicht unterstüzt :stupid: ):

[Header]
Anzahl=2 // Nur damit jede Section nur einmal vorkommt

[Eintrag_0] // Anzahl Wert um eins erhöht
Name=Name
Port=5050
FilePort=5051
IP=127.0.0.1

[Eintrag_1] // Anzahl Wert um eins erhöht
Name=Name2
Port=5050
FilePort=5051
IP=127.0.0.2

[Eintrag_2] // Anzahl Wert um eins erhöht
Name=Name3
Port=5050
FilePort=5051
IP=127.0.0.3

Wenn dann was gelöscht wird, kann einfach die jeweilige Section gelöscht werden, weil ich dann alle Sections auflisten und auswerten lassen würde.


Nur weist jemand zufällig, wie man mit Delphi ein PHP Script auf einem Server aufrufen kann, ohne das der Internet Explorer oder ähnliche Programme gestartet werden, und die Seite anzeigen?


Florian

alcaeus 17. Mai 2005 14:53

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Zitat:

Zitat von Florian Bernd
Nur weist jemand zufällig, wie man mit Delphi ein PHP Script auf einem Server aufrufen kann, ohne das der Internet Explorer oder ähnliche Programme gestartet werden, und die Seite anzeigen?

Du koenntest eine Indy-Http-Komponente (TidHTTP) aufs Form ziehen oder auch dynamisch erstellen, und dann mit dem Get-Befehl die Datei aufrufen. Das ist dann so als ob du die Adresse in einem Browser eintippen wuerdest.

Greetz
alcaeus

Zacherl 17. Mai 2005 14:58

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Danke, ich werd's mal versuchen. :-D

Florian

Zacherl 17. Mai 2005 15:55

Re: Chat über von den Sockets abgeleiteten Komponenten
 
So, hat geklappt! :-D
Eigentlich wollte ich die Indys ja nicht benutzen, wäre deswegen froh über eine alternative Lösung.
Wenn es eine Solche nicht gibt, muss ich wohl oder übel trozdem idHTTP benutzen. :(

Florian

Neuni 17. Mai 2005 17:53

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hast du ICQ, oder MSN oder sowas? Is n bissl einfacher als das immer übers Forum alles zu regeln.

---
Wenn ja, schreib mich mal an:
ICQ: 348318796
MSN: neuni88@hotmail.com
-----------------------------
oder IRC:
Server: irc.cicero.coolnetirc.de:6667
Channel: #engels-krieger

Waldteufel 17. Mai 2005 18:02

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi.

Kurze Zwischenfrage: Was genau beinhalten diese Fernwartungsfunktionen? (gegenüber sowas bin ich immer etwas skeptisch... ;-) )

//edit: Solange der Admin nicht die Clients "fernwarten" kann ist alles in Ordnung...

Neuni 17. Mai 2005 18:04

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Ich denke mal dass man als Admin den Server von woanders aus steuern kann, oder?

Zacherl 18. Mai 2005 13:00

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Also mit den "Fernwartungsoptionen" ist das ansteuern eines Clientes gemeint. Aber keine Totalkontrolle, sondern nur einzelne (unnütze) Optionen wie: Shutdwon verhindern, Desktopicons verstecken, usw ...

Der Client kann die Fernwartung verhindern, indem er unter "Einstellungen" den Haken vor "Controlcommands erlauben" entfernt.

Florian

Zacherl 18. Mai 2005 16:28

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

hier kommt wieder mal ne neue Version. Das Eintragen vom Server in eine Onlineliste und das Abfragen dieser durch einen Client klappt jetzt dank dem PHP Script von Neuni.

Die Runtime Packages von D7 hab ich diesmal nicht mitgeschickt, sind ja in den beiden Versionen davor enthalten.

Viel Spaß beim Testen
Florian

Waldteufel 20. Mai 2005 16:51

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Hi.

Zitat:

Zitat von Florian Bernd
Also mit den "Fernwartungsoptionen" ist das ansteuern eines Clientes gemeint. Aber keine Totalkontrolle, sondern nur einzelne (unnütze) Optionen wie: Shutdwon verhindern, Desktopicons verstecken, usw ...

Der Client kann die Fernwartung verhindern, indem er unter "Einstellungen" den Haken vor "Controlcommands erlauben" entfernt.

Florian

Das hab ich mir fast schon gedacht... Seitdem ich mal einen Chatclient hatte, bei dem der Admin vollen Festplatten und Systemzugriff hatte (das Ding flog nach 1 Minute wieder vom Rechner) habe ich eine grundsätzliche Abneigung gegenüber Fernwartungsfunktionen... Im Interesse (wahrscheinlich vieler) deiner Nutzer schlage ich vor, dass die Controlcommands standardmäßig deaktiviert sind. ;-)

Zacherl 22. Mai 2005 10:39

Re: Chat über von den Sockets abgeleiteten Komponenten
 
Ok, dann werden die Controllcommands standardmäßig deaktiviert! :-D

Die neuen Versionen gibt es übrigens nur noch als Freeware: hier.

Florian


Alle Zeitangaben in WEZ +1. Es ist jetzt 09: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