Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi mehrere sockets in einem programm verwenden? (https://www.delphipraxis.net/24480-mehrere-sockets-einem-programm-verwenden.html)

sAibo 21. Jun 2004 19:35


mehrere sockets in einem programm verwenden?
 
hi, für ein spiel in der schule, bin ich gerade dabei mir einen kleinen chat zu programieren. daneben brauch ich natürlich auch noch eine prozedur die für den gesammten restlichen datenaustausch verantwortlich ist.

der übersicht halber, dachte ich mir ich bau einfach zwei server-client verbingungen auf und benutz die eine nur für den chat und die andere für die restlichen daten... (ob das sinnvoll ist weiß ich nicht, habs halt mal versucht)

auf jeden fall bekomm ich jetzt wenn ich dass zweite programm bei mir aufm rechner starte eine fehlermeldung: "windows-socket-fehler: normalerweise darf jede socket adresse(protokoll, netzwerkadresse oder anschluss) nur jweils einmal verwendet werden(10048) auf API'bind'"

mhh... wie ist das? darf ich mehrere verschiedene sockets verwenden, die jeweils auf verschiedenen ports aber an die gleiche adresse schicken? (im moment test ich nur bei ner lokalhost verbindung)

wo liegt das problem für die fehlermeldung?

danke schonmal im voraus

tobias

Kernel32.DLL 21. Jun 2004 20:04

Re: mehrere sockets in einem programm verwenden?
 
Das Problem bei dieser Fehlermeldung liegt daran, dass du nicht zwei Server-Komponenten auf deinem Formular platzieren darfst.
(Glaub' ich doch...)

Ich weiss zwar im moment nicht, wie du es anders realisieren könntest, aber du musst wohl oder übel alles über einen Port laufen lassen.

(Was vielleicht auch ökonomischer is)

mfg
Daniel

sAibo 21. Jun 2004 20:21

Re: mehrere sockets in einem programm verwenden?
 
Mhh Mist :-/

Ökonomischer bestimmt =) aber wenn man einmal anders angefangen hat, will man halt nur noch ungern wieder alles umstellen :(

Wenn mir jemand noch ne Idee hat, darf es sie gerne posten

aber danke schonmal

alcaeus 22. Jun 2004 03:45

Re: mehrere sockets in einem programm verwenden?
 
Na klar darfst du zwei Serversockets auf einem Form haben. Wichtig ist nur:
  • Die Serversockets werden an zwei verschiedene Ports gebunden (Eigenschaft Port oder ähnlich)
  • Die Clientsockets müssen einen verschiedenen Localport haben und auf den richtigen Remoteport gehen.
Wenn du diese beiden Bedingungen einhlatest, so hast du sicher kein Problem beim Programm. Ich weiß dass es bei meinem...ääh...Remote Administration Tool geklappt hat.

Greetz
alcaeus

Stevie 22. Jun 2004 08:07

Re: mehrere sockets in einem programm verwenden?
 
Ich würde trotzdem nur einen Socket verwenden und mit bestimmten Flags angeben, was jetzt für Informationen kommen, ob Chat oder Spieldaten o.Ä.

alcaeus 22. Jun 2004 09:31

Re: mehrere sockets in einem programm verwenden?
 
Ja, in so einem Fall ist ein Socket sicherlich ausreichend. Wenn jetzt aber so wie z.B. bei FTP Daten übertragen werden, dann sollte noch eine Datenleitung für Abbruchkommandos etc. vorhanden sein. Aber nachdem du dir dein Kommunikationsprotokoll selbst "erfinden" musst (welche Daten werden übertragen, wie wird bestätigt), dürfte das Problem relativ leicht zu kontrollieren sein.

Greetz
alcaeus

sAibo 22. Jun 2004 11:03

Re: mehrere sockets in einem programm verwenden?
 
ok werd mir da mal neue gedanken machen :)

was versteht man genau unter dem begriff flags?
eine art variable, die abgefragt werden kann und je nach dem ergebnis die richtige prozedur zum bearbeiten aufruft?

Stevie 22. Jun 2004 11:10

Re: mehrere sockets in einem programm verwenden?
 
Zitat:

Zitat von sAibo
was versteht man genau unter dem begriff flags?
eine art variable, die abgefragt werden kann und je nach dem ergebnis die richtige prozedur zum bearbeiten aufruft?

Ungefähr, Flag ist hier vielleicht der falsche Ausdruck. :oops:
Du schickst einfach vor der eigentlichen Information einen Wert, der dem Empfänger sagt, was jetzt kommt.

[edit]Warum verschreib ich mich heute dauernd?[/edit]


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