AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Chat über von den Sockets abgeleiteten Komponenten
Thema durchsuchen
Ansicht
Themen-Optionen

Chat über von den Sockets abgeleiteten Komponenten

Ein Thema von Zacherl · begonnen am 9. Mai 2005 · letzter Beitrag vom 22. Mai 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Zacherl
Zacherl
Registriert seit: 3. Sep 2004
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!

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 ) 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
Angehängte Dateien
Dateityp: zip chat_530.zip (981,5 KB, 230x aufgerufen)
Dateityp: zip komponenten_153.zip (312,4 KB, 144x aufgerufen)
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
 
Superfly
 
#11
  Alt 11. Mai 2005, 20:38
Hi Florian
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?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#12
  Alt 12. Mai 2005, 13:11
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 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
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#13
  Alt 13. Mai 2005, 15:50
Hallo,
ich wollte nur kurz Version 3.3 hochladen ...

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

Florian
Angehängte Dateien
Dateityp: zip chat_178.zip (1,02 MB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Superfly
 
#14
  Alt 13. Mai 2005, 15:52
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
schön dan werde ich mal die neuste version testen
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#15
  Alt 16. Mai 2005, 17:30
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
Angehängte Dateien
Dateityp: zip chat_974.zip (1,06 MB, 53x aufgerufen)
  Mit Zitat antworten Zitat
Neuni

 
Delphi 7 Personal
 
#16
  Alt 16. Mai 2005, 18:20
Zitat von Florian Bernd:
Die Probleme 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?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#17
  Alt 17. Mai 2005, 14:47
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 ):

[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
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus
 
#18
  Alt 17. Mai 2005, 14:53
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
Andreas B.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#19
  Alt 17. Mai 2005, 14:58
Danke, ich werd's mal versuchen.

Florian
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#20
  Alt 17. Mai 2005, 15:55
So, hat geklappt!
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 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