Wieviel Sockets fasst fd_set.fd_array[...]
-
Hallo, kurze Frage... cih war bisher der meinung dass man "unendlich viele"()begrentz durch den DAtentypint, FileDeskriptoren im FD_SET ablegen kann, nun seh ich aber beim durchforsten der winsock2.h folgendes:
#ifndef FD_SETSIZE #define FD_SETSIZE 64 #endif typedef struct fd_set { u_int fd_count; SOCKET fd_array[FD_SETSIZE]; } fd_set;Heißt das, das man maximal 64 Sockets in einem Fd_Set ablegen kann ?
Oder vergrößert bzw verkleinert FD_SET(Makro) die GRöße automatisch ?Gruß Chris
-
für viel mehr sockets ist select eh zu lahm
-
würde es sinn machen für eine dynamische anzahl von sockets mehrere sets zu machen und jeden set dann einzeln abfragen mti select ?! ... obwohl wenn du sagst select is da zu lahm ... wie regeln das denn andere server zb. ein icq-server (nur als beispiel weil da ja mehr als 64 user angemeldet sein müssen, und hinternander select aufrufen bringt ja keinen geschwindigskeits vorteil oder ?)
Gruß Chris
-
-
Windows bietet auch WSAAsyncSelect() an
-
naja mir wiederstrebt es plattform abhängig zu programmieren ...
WSAAsycnCOnnect ist zwar gut solange man unter windows progammiert aber mehr auch nicht...
-
-
Du kannst entweder einfach
#define FD_SETSIZE 1024in dein Programm schreiben, überall bevor du windows.h/winsock2.h/... inkludierst (so macht die Boost.Asio das auch), oder einfach etwas tricksen und selbst eine passende Datenstruktur zusammenbasteln.
-
ok das ist nicht mal das problemm
aber "........... " meinte select wäre adfür zu "lahm" stimmt das odre kann ich das dann trotzdem getrost verwenden XD ?Gruß Chris
-
kommt drauf an auf welchen wert du FD_SETSIZE setzen würdest.
-
fragen wir mal anders:
bis welchen wert wäre select noch angemessen schnell ? auf einem 3000 mhz rechner ?
Gruß Chris
-
bis 1337 sockets
-
ist ne gute frage wieviele sockets den pc zur erlahmung führen, am besten wärs glaub ich, wenn du es einfach mal selber testest...
-
nagut für die zahlreichen tipps
