Autor Beitrag
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 11.04.06 12:49 
Hallo!

Ich versende mehrmals hintereinander Datenpakete, um eine Datei zu übertragen.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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...