Autor Beitrag
Tristan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Fr 19.05.06 19:51 
Guten Abend,

ich wollte euch fragen, ob ihr mir andere Komponenten als TClientssocket und TServersocket empfehlen könnt. War es nicht so, dass Borland die Komponenten rausgeschmissen hat weil sie veraltet waren?

Ich habe das Problem, dass sich mehrere Clients an einem Server mit ihrem Computernamen anmelden müssen und dann auf Befehle vom Server warten müssen. Bis jetzt habe ich das so gemacht, dass der Client ständig prüft ob der Server online ist und wenn ja seinen String sendet.
Wenn nun aber alle Clients online sind und der Server als letztes aktiv wird kommt es zu einer Masse von Verbindungsversuchen. Das Resultat: nicht alle Clients können sich anmelden bzw. es kommt zu irgendwelchen Überläufen.

Die gesuchte Komponente müsste also mehrere Verbindungen aufnehmen können - möglichst in Echtzeit.

Danke im Vorraus!
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: So 21.05.06 13:33 
Benutze doch TidTCPClient/Server
Die Socketkomponenten benutzen auch nur TCP

Gruß alias5000

_________________
Programmers never die, they just GOSUB without RETURN
Tristan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: So 21.05.06 14:12 
Bei Client und serversocket konnte man einen String ja mit Socket.sendtext senden sowie mit receiveText empfangen.

Wie stellt man das denn am besten mit TidTCPClient/Server an? In anderen Posts war da immer vom writeln/readln die Rede?!
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 21.05.06 20:08 
schau mal bei den OpenSource Units hier im Forum nach den SimpleTCP Komponenten. Das sind Wrapper für Indy, mit denen man sehr komfortabel arbeiten kann !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 21.05.06 23:34 
Moin!

user profile iconTristan hat folgendes geschrieben:
War es nicht so, dass Borland die Komponenten rausgeschmissen hat weil sie veraltet waren?

Naja, sie sind schon veraltet, was die API und das Wrapper-Konzept angeht, aber es ist eben immernoch "nur" ein Wrapper für die WSA, die dadrunter liegt, Indy etc. machen da auch nix anderes, es geht nur um die API, die sich dir als Programmierer bietet.

Bei einem konkreten Vergleich der "Leistungsfähigkeit" schneiden die Sockets gar nicht soo schlecht ab, der TClientSocket ist absolut nicht den Indies hinterherstehend, lediglich der TServerSocket ist halt "nur" monolithisch, wenn man die Client-Ereignisse nutzt, anstatt eine eigene Client-Thead-Klasse beim Connect zu übergeben (konkret bedeutet das, das der TServerSocket durchaus multithreaded ist/sein kann, aber eben mit Zusatzaufwand).

Fazit: Wenn du nicht in kommerziellen Dimensionen Last zu bedienen hast (und das dürfte mal eher selten der Fall sein), dann sind die Sockets zwar "alt", aber noch lange nicht "schlecht".

user profile iconTristan hat folgendes geschrieben:
Ich habe das Problem... [...]
Das Resultat: nicht alle Clients können sich anmelden bzw. es kommt zu irgendwelchen Überläufen.

Wenn ich mir das so ansehe, dann muss ich leider sagen, dass da der "Teufel" wohl eher in deinem Konzept liegt; ich bezweifle, dass dir eine andere Komponente da helfen wird... :? :|

user profile iconTristan hat folgendes geschrieben:
Die gesuchte Komponente müsste also mehrere Verbindungen aufnehmen können - möglichst in Echtzeit.

Diese "Funktionalität" wird von der WSA bereitgestellt, egal welchen Wrapper du in Komponentenform einsetzt, wenn´s da hakt, dann liegt das eher selten an dem Wrapper... ;)

Aus meiner eigenen Erfahrung: Ich kann deine beschriebenen Fehlfunktionen nicht bestätigen, das ist nicht ein Problem der Socket-Kompos - auch wenn die API/das Konzept veraltet ist.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.