select() auf Windows portieren
Verfasst: 04.04.2011, 02:44
Ahoi,
ich versuche gerade meinen Netzwerk-Code auf Windows zu portieren und bin auf ein kleines Problem gestossen. Meine Implementation benutzt select() und das ganze funktioniert unter Linux auch super. Wenn ich das ganze unter Windows Teste gibt select() immer 0 zurück.
Verhält sich select() unter Windows irgendwie anders? Soweit ich weiß, ja eigentlich nicht. Muss ich vielleicht erst connect() aufrufen bevor ich überprüfe ob der socket schreibbar ist? Das mach ich unter Linux nämlich anders herum. Sprich, ich rufe erst select() auf und nur wenn der socket schreibbar ist ruf ich connect() auf. Aber wie gesagt unter Windows gibt select() immer 0 zurück ich kann also nie schreiben.
Noch zur info ich benutze blockierende Sockets und keine Asynchronen Windows-Funktionen, sonder das Standart select().
Hoffe auf eure Hilfe.
gruß,
Halan
EDIT: Ihr könnt euch den Code auch anschauen: http://bazaar.launchpad.net/~kai-mast/y ... CPPort.cpp
Wichtig ist eigentlich nur connect() und update(). Connect wir eben zu Anfang aufgerufen und update() dann jedes Update.
ich versuche gerade meinen Netzwerk-Code auf Windows zu portieren und bin auf ein kleines Problem gestossen. Meine Implementation benutzt select() und das ganze funktioniert unter Linux auch super. Wenn ich das ganze unter Windows Teste gibt select() immer 0 zurück.
Verhält sich select() unter Windows irgendwie anders? Soweit ich weiß, ja eigentlich nicht. Muss ich vielleicht erst connect() aufrufen bevor ich überprüfe ob der socket schreibbar ist? Das mach ich unter Linux nämlich anders herum. Sprich, ich rufe erst select() auf und nur wenn der socket schreibbar ist ruf ich connect() auf. Aber wie gesagt unter Windows gibt select() immer 0 zurück ich kann also nie schreiben.
Noch zur info ich benutze blockierende Sockets und keine Asynchronen Windows-Funktionen, sonder das Standart select().
Hoffe auf eure Hilfe.
gruß,
Halan
EDIT: Ihr könnt euch den Code auch anschauen: http://bazaar.launchpad.net/~kai-mast/y ... CPPort.cpp
Wichtig ist eigentlich nur connect() und update(). Connect wir eben zu Anfang aufgerufen und update() dann jedes Update.