Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

Receive bytes (Winsock)   Найти похожие ветки 

 
Sr_pr   (2003-02-16 02:00) [0]

Скажите пожалуйста, как можно принять файл (даже не файл, а просто последовательность байтов с произвольного компьютера), если размер принимаемого заранее неизвестен. Ведь, я думаю, нет необходимости делать для этого один буфер приёма мегабайт этак на 100 (или даже больше) и потом анализировать его содержимое.
И ещё: как можно сделать приём асинхронным (в смысле, чтобы программа не подвисала в момент приёма), не используя компоненты типа TClientSocket, а пользуясь просто Winsock API?


 
Digitman ©   (2003-02-16 12:58) [1]


> если размер принимаемого заранее неизвестен


что мешает передатчику инф.сообщения непосредственно перед посылкой самого сообщения послать приемнику, скажем, DWORD, содержащий полный размер следом посылаемого сообщения ? Получив этот DWORD, приемник будет знать , сколько байт следом следует принять (в один или несколько приемов) для того, чтобы целостность инф.сообщения была достоверна.


> как можно сделать приём асинхронным (в смысле, чтобы программа
> не подвисала в момент приёма), не используя компоненты типа
> TClientSocket, а пользуясь просто Winsock API?


Точно так же, как это делает сам TClientSocket в режиме ctNonBlocking. Исходный код же открыт ! Изучи его и сделай свой вариант по образу и подобию.



 
Anatoly Podgoretsky ©   (2003-02-16 13:05) [2]

Если нельзя передать размер, то передать стоповую последовательность байт, если и это нельзя, то по таймауту.


 
Sr_pr   (2003-02-16 21:09) [3]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.04.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
3-19499
N&N
2003-03-20 07:35
2003.04.07
Перенос в EXcel итоговой строки из DBGridEh a


6-19740
Translator
2003-02-13 16:39
2003.04.07
Сведения из Internet


3-19480
Игорь С.
2003-03-19 16:28
2003.04.07
Использование IBDataSet


7-19886
Phant0m
2003-02-12 12:35
2003.04.07
Нужно обработать сигнал с СОМ или LPT порта


1-19539
DelphiN!
2003-03-26 18:32
2003.04.07
Как посмотреть, что находится в коммандной строке?