Socketprogrammierung

jma

Mitglied
Moin

Beschäftige mich grade etwas mit der Socket Programmierung und bin nun auf folgendes Problem gestoßen:

Hab einen Multi Server und Clients am Laufen, jedoch lassen sich Verbindungen nur unter Win98, nicht unter Windows2000 herstellen.
Beim Server wird der Socket erstellt, gebunden und ohne Fehlermeldung in den listen gesetzt.
Der connect beim Client gibt ebenfalls keinen Fehler, aber wahrscheinlich kommt die Anfrage nicht beim Server an, und der accept wartet (blockiert) wartet somit vergeblich.

include u.a die
winsock.h
afxsock.h // MFC-Socket-Erweiterungen

bzw. (zuvor getestet)
#pragma comment(lib, "Ws2_32.lib")
afxsock.h // MFC-Socket-Erweiterungen
Besten dank für eure hilfe, wenn Quellcode benötigt wird stelle ich den gerne noch rein, aber ist halt umfangreicher und vielleicht kennt ja einer das problem bereits.
 
Arbeitest du evtl. mit Threads? Das ist einer der grösseren Unterschiede zwischen der 95er und der NT-Schiene. Wenn ein zweiter Thread volle Pulle fährt, kriegen die anderen fast nichts mehr ab. Besonders wenn es innerhalb eines Programmes passiert.

Du sagst accept blockiert. Benutzt du blocking Sockets?

IMHO ist es unter Windows wesentlich einfacher, über WSAAsyncSelect zu fahren. Dadurch braucht man überhaupt keine Threads (nur ein HWND) und die ganzen Socket-Operationen blockieren nicht.
 
nunja ich verwende

WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
frage message na dem vordefinierten wert für meine socket ab und sobald da was eintrifft wird ne fkt ausgeführt die neue clients oder ankommende Nachrichten,etc erkennt.

nagut werde nochmal etwas rumprobieren
besten dank erstmal
jma
 
Zurück