Entwickler-Ecke

Internet / Netzwerk - [WinSock] Fehler WSAEWOULDBLOCK bei Datei versenden


jaenicke - Di 11.04.06 12:49
Titel: [WinSock] Fehler WSAEWOULDBLOCK bei Datei versenden
Hallo!

Ich versende mehrmals hintereinander Datenpakete, um eine Datei zu übertragen.

Delphi-Quelltext
1:
WinSock.Send(MySocket, Buffer^, FileStream.Size, 0);                    

Dabei kommt dann die Fehlermeldung WSAEWOULDBLOCK. Wie kann ich aber vorher herausfinden, ob ich gerade senden kann?
Ich meine, damit ich nicht, wenn diese Meldung kommt, etwas warten und es nach dem Trial-and-Error-Prinzip immer wieder probieren muss (wie ich es aus der Beschreibung dieses (non-fatalen) Fehlers als Vorgehensweise gelesen habe).

Danke schon mal,
Sebastian Jänicke


Narses - Di 11.04.06 13:01

Moin!

Offensichtlich verwendest du asynchrone Sockets, dann erhältst du doch über den AsyncSelect ein FD_WRITE, wenn der Socket wieder Daten senden kann. Ansonsten synchron (blockiered) arbeiten und einen Thread abspalten.

Sag mal, warum gehst du denn direkt auf die WSA... :?: Quälst du dich gerne? :lol:

cu
Narses


jaenicke - Di 11.04.06 13:07

FD_WRITE muss ich mal probieren.

Nun ja, direkt benutze ich das, weil es interessant ist :wink:, ich wills einfach mal probieren...
Grundsätzlich benutze ich normalerweise eigentlich die Indys...