Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > WSAEWOULDBLOCK как с ним бороться????


Автор: elestrago 15.10.2008, 23:24
В общем у меня образовалась довольно крупная проблема, при передачи файлов по сети!

Раньше когда я передавал всего один файл, мне не приходилось сталкиватся с такой проблемой, но теперь мне нужно передавать много файлов сразу,  и начала постоянно появлятся эта ошибка, я так понял она появляется при переполнении буфера, и я не знаю как её правильно обрабатывать!

помогите пожалуйста разобратся!

данные передаю примерно вот так:

Код

                    startpos:=str.position;
                    Lenbuf := str.Read(Buffer, SizeOf(Buffer));
                    if Lenbuf > 0 then
                      begin
                        LenSend := send(Fsocket,Buffer,Lenbuf,0);
                        if LenSend = -1 then
                        begin
                            ErrorCode:=WSAGetLastError;
                            if ErrorCode = WSAEWOULDBLOCK then
                              begin
                                //... сдесь бы нада обработать эту ошибку!
                              end;
                        end;


Автор: dumb 16.10.2008, 02:56
Цитата(elestrago @  16.10.2008,  00:24 Найти цитируемый пост)
я не знаю как её правильно обрабатывать
ждать уведомления FD_WRITE и после его прихода повторять попытку. либо просто делать Sleep и повторять попытку, но это некошерно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)