AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Suche Lösung für Server-Client Problem (TCP)
Thema durchsuchen
Ansicht
Themen-Optionen

Suche Lösung für Server-Client Problem (TCP)

Ein Thema von S - tefano · begonnen am 13. Mai 2003 · letzter Beitrag vom 15. Mai 2003
Antwort Antwort
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#1

Suche Lösung für Server-Client Problem (TCP)

  Alt 13. Mai 2003, 20:34
Hi,

ich schreibe zur Zeit an einem Chatprogramm (von denen es einfach zu wenige gibt ).
Neben dem "globalen" (im LAN) Chat, der per UDP- Broadcast läuft, möchte ich nun dem User ermöglichen, einen 2er- Chat über TCP/IP zu öffnen. Das soll er mit mehreren Usern gleichzeitig können (also mehrere 2er Kanäle).
Jetz frag ich mich wie ich das lösen soll.
Mein erster Gedanke war, für diese 2er- Chats eigene .exes zu machen, die sich dann auf verschiedenen Ports miteinander verbinden (so kann ich immer wieder neue Chatfenster aufmachen, muss nur aufpassen dass nicht 2 Kanäle denselben Port haben).
Andererseits is dann die Info, dass ein TCP- Server einen Array hat, in dem er seine Verbindungen verwaltet, an mich rangetragen worden.
Damit kenn ich mich jetz nich so wirklich gut aus. Und, wenn jeder User seinen TCP- Server zentral im Hauptprogramm hätte, müsste ich den 2er- Chat ja als weitere Form im Programm unterbringen. Dann kann ich davon aber nicht mehrere gleichzeitig öffnen - glaub ich.
Was würdet ihr machen?
Könnte mir einer das mit dem ServerSocket.Connections mal näher erläutern? Wie kann ich z.B. unterscheiden, welche der Verbindungen mir jetz ne Nachricht geschickt hat? Da wird ja im OnRead- Ereignis - soweit ich weiß - nicht übergeben, welchen Index die Connection hat. Da blick ich irgendwie noch nich so richtig durch.
Würd ja lieber einfach mehrere Server auf verschiedenen Ports aufmachen. Aber irgendwie is ein Programm, das u.U. mehr als 10 Ports belegt ja n bisschen stupide.

Bis denn,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#2
  Alt 14. Mai 2003, 14:08
Das ganze geht mit einem Server. Bei OnRead wird dir die Variabele Socket übergeben, die enthält die IP Adresse des Senders (und auch den Index, glaub ich), anhand der du herausfinden kannst, von wem das Kommt.
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 14. Mai 2003, 14:53
Ich habe das Problem vielleicht aufwendig und umständlich aber funktionstüchtig gelöst!
Aus den Nachrichten einen Array gemacht, so das ein feld eine Zahl enhält die die Empfänger angibt, also zu beispiel 0 für alle und so hat jeder im Server eingeloggte User eine Zahl( Du kannst auch einfach die IP nehmen).

Diese Lösung ist jedoch für ein Caht mit static Server gedacht und nicht für Messenger, da der Server die Indexnummer aller kennen muss und sie zuordnet.

Wenn die genutzten Ports nicht verwaltet werden, kann es z.B. bei einer Verbindung von 3 Programmen mit 2 port zu einem Konflikt kommen!

Ich habe damals noch den Winsocket benutzt, werde mich aber auch einmal mit TCP schlau machen!

Mein Problem is auch ganz net, Wie bekommst du im Inet einen Funktionierenden IP-Scanner! Mit Try und open funktioniert das nit!

  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#4
  Alt 15. Mai 2003, 15:56
Hi,

danke für die Antworten.
Auf das mit dem Socket der übergeben wird hätt ich irgendwie kommen müssen....
Aber naja, werd mich dann mal erkundigen wie man eine Form mehrfach anzeigt.

Bis dann,

Stefan
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#5
  Alt 15. Mai 2003, 22:40
Ach jetzt habe ich das such verstanden!

So wie onz die Lösung beschrieb stellt sich jedoch ein Problem, der Port muss vorher noch über die bestehende Verbindung übermittelt werden
und die Portverwaltung!

Ansonsten keine schlechte Lösung
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:57 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