Autor Beitrag
NeWsOfTzzz
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 233


D4 Prof
BeitragVerfasst: Mo 25.10.04 12:38 
Also wenn ich einen ServerSocket habe und einen Clientsocket und die gehen eine einfache Verbindung ein.. das ist net das Problem. Dafür gibt´s auch zig Tutorials. Aber wie man das managen muss, wenn man nun mehrere ClientSockets hat.. dafür hab ich nix gefunden und hier im Board in älteren Threads wusste auch keiner eine Antwort. Und mich hat´s auch mehrere Stunden gekostet bis ich auf die Lösung gekommen bin ^^. Also wenn einer nen Tutorial braucht kann er ja HIER lieb fragen :) .
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 25.10.04 13:22 
Tut mir leid, aber ich habe absolut keinen Schimmer, wovon du redest. Was genau willst du erklären? Was ist das Problem mit mehreren Verbindungen? Was verstehst du unter "mehrere Clientsockets"? Das klingt schon recht ... wirr.

Wenn bei mir die Verbindungen eingehen, dann nehme ich die Server-Komponente, da können es mehrere sein. Bastele ich ein Programm, daß zum Server-Programm Kontakt aufnimmt, nehme ich eine Client-Komponente, und basta.

Kann es sein, daß du irgendwie auf die wahnwitzige Idee gekommen bist, beide Komponenten miteinander in einem Programm zu vermischen?

Cu,
Udontknow
NeWsOfTzzz Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 233


D4 Prof
BeitragVerfasst: Mo 25.10.04 13:41 
Nein ich meinte eigentlich:
Du hast die Server Komponente, wenn nun eine Verbindung eingeht dann hast du TServerSocket.Socket.Connections[0]... das ist ja auch recht verständlich. Aber wie man das nun managed mit mehreren Verbindungen.. hab ich bis jetzt noch nicht erklärt gesehen, sogar unten bei den FAQ´s, wenn man da guckt "eigenes chat programm" sogar da ist der letzte post offen wie man denn jetzt die einzelnen clients anspricht.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 25.10.04 16:53 
Was gibt es denn da groß zu managen? :?
NeWsOfTzzz Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 233


D4 Prof
BeitragVerfasst: Mo 25.10.04 17:07 
Naja wenn ich nur mit connections[4] kommunizieren will, nun disconnected connections[3] und plötzlich verschiebt sich connections[4] auf connections[3] .. das war das hauptproblem.
arcitC|Crash
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 88


D4 weiter weiß ich net
BeitragVerfasst: Mo 25.10.04 17:10 
Ja ich glaub, das heißt so viel wie:
Ein Server schickt an einen Client eine Nachricht = funktioniert (mit ServerSocket1.socket.connections[0]. SendText
Aber ein Server schickt an mehrere Clienten eine Nachricht = geht nicht, weil wenn z.B. 8 Clienten drauf sind und man connections[7] schreibt bekommt nur der 8. die nachricht und außerdem kann man doch nicht vorher wissen, wie viele Clienten connecten werden und dann wieder disconnecten usw. also kann man sich gar nicht auf eine zahl festlegen. Aber auch wenn, wie gesagt, man kann nur an den schicken, dessen "Nummer" bei connections[...] angegeben ist.
So, jedenfalls ist das mein Problem... :(
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 25.10.04 17:25 
Zitat:
Naja wenn ich nur mit connections[4] kommunizieren will, nun disconnected connections[3] und plötzlich verschiebt sich connections[4] auf connections[3] .. das war das hauptproblem.


Das hat doch nun nichts mit Internet- oder Netzwerk-Kommunikation zu tun.
Das Problem hast du doch bei jeder Liste, bei Comboboxen, Listboxen et cetera. Man muss sich eben einen eindeutigen, nicht veränderbaren Schlüssel zur Suche nehmen und nicht über den Index marschieren, da der sich eben ändern kann.

Cu,
Udontknow
NeWsOfTzzz Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 233


D4 Prof
BeitragVerfasst: Mo 25.10.04 17:47 
Ja die eine Möglichkeist ist ja, wenn ich ein Paket schicken will, durch alle Connections durchgehen, zuerst nach passender IP suchen und dann nach passendem Port.. Aber ist halt viel Aufwand. Von daher geht´s komfortabler wenn man sich selbst noch ne liste anlegt und halt beim onclientdisconnect event das socket vergleicht mit den sockets in connections und dann halt seine eigene liste der connections liste anpasst. Oder gibt´s da vielleicht auch bessere lösungen? Zumal ich auch was gelesen habe von Data(pointer), wäre doch auch interessant..

Edit:

Ok mit DATA ist wohl das beste... Dann spart man sich die zweite List. Einfach isses aber immer noch nicht. Man kann das eigentlich nur auf folgende Weise verwirklichen: Ich hab ein zusätzliches Objekt. In DATA steht der Index drin von dem Objekt und in dem Objekt indiziert mit dem Index aus DATA steht der Index für Connections drin. Dann muss das ganze System noch bei OnClientConnect und OnClientDisconnect "gewartet" werden. Das komplizierte ist ja eigentlich nur DATA richtig zu benutzen und dann beide Listen gleichzeitig zu "warten". O.o

Moderiert von user profile iconUdontknow: Postings zusammengefasst.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 26.10.04 09:05 
Also, ich machs anders, ich merke mir einfach das Connection-Objekt, so muss ich dann später überhaupt nicht über die Liste stiefeln.

Wie gesagt, für ein Tutorial ist die Sache aber eigentlich zu trivial, davon abgesehen, daß es eben nichts mit Internet und Netzwerk zu tun hat. Ein FAQ-Beitrag könnte es werden, kannst da ja mal was einreichen.

Cu,
Udontknow