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

Вниз

передать файлЫ по TCP   Найти похожие ветки 

 
MORA   (2004-07-02 16:18) [0]

нужен код или накрайняк последовательность действий при передаче НЕСКОЛЬКИХ ФАЙЛОВ с помощью компонентов TCPxxx.
Я написал прогу, она передает нормально файлы до 8 Кб, а больше -- передает мусор. Пример брал из делфовых примеров (NetChat).

При передаче я использую вызов TcpClient.SendStream(fs);
При приёме в обработчике OnAccept - ...fs.WriteBuffer(Buffer^, FSize);


 
Digitman ©   (2004-07-02 16:27) [1]


> Я написал .. мусор


бывает


> накрайняк последовательность


"накрайняк" для TCP один :

- устанавливается stream-oriented-коннект с TCP-сервером
- передаются данные (!!!!) ВНЕ зависимости от того, файл это или не файл, НЕСКОЛЬКО их или один-единственный ..

передается содержимое БУФЕРА В ВИРТУАЛЬНОЙ ПАМЯТИ, а не черт-те что под названием ФАЙЛ ... ЧТО в этом буфере и КАК оно туда попало перед передачей - флаг тебе в руки, это элемент творычества, никак явно не привязанный к термину "файл"


 
MORA   (2004-07-02 16:40) [2]

дык я так и поступал. Для одного файла я передаю так:
1. буфер (SendBuf) (или строку (SendLn)), в к-ром(ой) лежит имя файла;
2. буфер (SendBuf), в к-ром лежит размер файла (для того, чтобы понять на принимающей стороне, какой буфер создавать);
3. буфер с собственно файлом.
----------------------
В той демке с чатом строки передавались SendLn, а принимались в цикле с проверкой на непустоту строки ()while s <> "" do...
Мне не нужно при приёме буфера принимать его частями или за чем-то следить? Такое впечатление, что пакеты по дороге теряются или сервер (TCPServer) не успевает их обрабатывать. В каждом OnAccept я создаю поток, разгребающий переданный ему буфер...


 
MORA   (2004-07-02 16:42) [3]

Кстати, я ошибся в первом сообщ.:
при приёме: ClientSocket.ReceiveBuf(Buffer^, FSize);


 
Rouse_ ©   (2004-07-03 12:23) [4]

проще использовать WinSock API а именно TransmitFile именно для этого и предназначенную...



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

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

Наверх




Память: 0.47 MB
Время: 0.046 c
14-1092810566
syte_ser78
2004-08-18 10:29
2004.09.05
выбор другой таблици из БД


3-1091777163
pepper
2004-08-06 11:26
2004.09.05
Проверка корректности заполнения полей базы


14-1092643121
Anton15
2004-08-16 11:58
2004.09.05
Word


4-1090514538
saimon
2004-07-22 20:42
2004.09.05
Как показать стандартную WinXP подсказку (скнопкой "х" в правом в


14-1092915506
Agent13
2004-08-19 15:38
2004.09.05
Фотоателье обнаглели вконец...