Zuwenig Puffer bei select()



  • Hallo zusammen,

    ich möchte ein kleines Netzwerkprogramm schreiben, dass meine Ports überwacht. Dies funktioniert mit select() ganz gut, aber wenn ich mehr als ca 60 Ports überwachen will, bekomme ich folgende Fehlermeldung:

    WSAENOBUFS (10055)
    No buffer space available.
    An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

    Hat jemand einen Idee, wie man den Puffer größer machen kann oder eine andere Lösung mehr Ports zu überwachen?

    Schon mal vielen Dank im Voraus.

    Grüße Fragender



  • vermute, das liegt an de Konstanten, siehe Auszug aus winsock2:
    /*
    * Select uses arrays of SOCKETs. These macros manipulate such
    * arrays. FD_SETSIZE may be defined by the user before including
    * this file, but the default here should be >= 64.
    *
    * CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE
    * INCLUDED IN WINSOCK2.H EXACTLY AS SHOWN HERE.
    /
    #ifndef FD_SETSIZE
    #define FD_SETSIZE 64
    #endif /
    FD_SETSIZE */

    wenn du FD_SETSIZE vorher schon definiert hast, müsst es funzen.(?)
    Ciao
    arni


Log in to reply