Линуксоиды, они, по другому не могут
extHack писал(а):Посоветуйте плиз, как лучше данные отослать? Я отправляю некий exe-файл по TCP протоколу. Только отправляю его так <tag>hex-byte. Сначала 5 байтов - тэг, а потом байт (в hex)
<fls>FF
<fls>4B
Итд
MeMBus писал(а):Вообще винсок в ocx по замыслу не предназначен для передачи “exe” в открытом виде (тока текст)...
Sasha_karasov писал(а):Зачем мудрить?
Файлы вот так нужно отправлять:
1. Открываешь файл(какой те нужно отправить) как binary
2. Читаешь из файла примерно 1024 байт, и отправляешь.
3. ждешь пока дойдет пакет(процедура Winsock1_SendComplete)
4. проверяем все ли мы отправили, если да то выходим, в противном случае идем к пункту 2
char filebuff[1024];
do
{
ReadFile(hFile, filebuff, sizeof(filebuff), &dwRead, NULL);
if (dwRead != 0)
send(filesock,filebuff,dwRead,0);
} while (dwRead != 0);
alibek писал(а):Буфферизовать надо не для того, чтобы файл не побился, а для того, чтобы не перегружать сеть (при отправке блоками можно регулировать скорость скачки/закачки). Кроме того, блочная передача позволяет отследить прогресс передачи.
tyomitch писал(а):Sasha_karasov писал(а):Зачем мудрить?
Файлы вот так нужно отправлять:
1. Открываешь файл(какой те нужно отправить) как binary
2. Читаешь из файла примерно 1024 байт, и отправляешь.
3. ждешь пока дойдет пакет(процедура Winsock1_SendComplete)
4. проверяем все ли мы отправили, если да то выходим, в противном случае идем к пункту 2
Зачем мудрить?
Файлы вот так нужно отправлять:
1. Открываешь файл(какой те нужно отправить) как binary
2. Читаешь весь файл целиком, и отправляешь.
tyomitch писал(а):MeMBus писал(а):Вообще винсок в ocx по замыслу не предназначен для передачи “exe” в открытом виде (тока текст)...
Ты это откуда взял? Всё прекрасно передаётся.
MeMBus писал(а):tyomitch писал(а):MeMBus писал(а):Вообще винсок в ocx по замыслу не предназначен для передачи “exe” в открытом виде (тока текст)...
Ты это откуда взял? Всё прекрасно передаётся.
Я не говорю о том, передается ли все прекрасно, или нет. Я о том, что винсок (именно ocx) был разработан для передачи текстовых сообщений
MeMBus писал(а):А как реализовать передачу через него это уже зависит от каждого... А самый надежный способ это действительно передача файла пакетами и именно не больше 1024 (и не как ни через ocx, дабы не было проблем)
Sasha_karasov писал(а):Че вот так просто взял загнал файл в переменную и отправил?
Мне кажется что будет большая задержка, так как ПК еще время нужно чтоб например 500 мб загнать в переменную!
А потом если просто возьмешь и отошлешь на сервер или на клиент придет примерно 2~кб. И все!
Мне этот вопрос тоже интересовал, а смотрел код исходников, они все передают по пакетам и ждут пока дойдет пакет.
tyomitch писал(а):Sasha_karasov писал(а):Че вот так просто взял загнал файл в переменную и отправил?
Мне кажется что будет большая задержка, так как ПК еще время нужно чтоб например 500 мб загнать в переменную!
А потом если просто возьмешь и отошлешь на сервер или на клиент придет примерно 2~кб. И все!
Мне этот вопрос тоже интересовал, а смотрел код исходников, они все передают по пакетам и ждут пока дойдет пакет.
1. Время на загон 500Мб в переменную - не больше, чем на загон 500 000 раз по 1Кб в переменную. Так что тут ты не прав.
2. На клиент всё придёт полностью. Естественно, что не одним куском.
3. Ну мало ли кто что понапишет, я тоже много какие исходники видел. Что на заборах пишут, ты на это тоже ориентируешься?
tyomitch писал(а):Статья должна быть аргументированной не на уровне "где-то прочитал непонятно что". Давай ещё раз конкретно спрошу - зачем дробить файл? И откуда взялась цифра 1024?
Приведи пример, где нужно перекачивать файл в 500Тб. Начни с того, где ты собираешься хранить файл в 500Тб.
Для каждого куска возникает DataArrival, нужно эти куски складывать в одно место.
Не все на форуме говорят так, как ты. Например, я говорю не так, а >99% пользователей не говорят никак. Т.ч. ещё одна фактическая ошибка.
FAKK2 писал(а):Sasha_karasov
Вот мне интересно. Откуда такая магическая цифра в 1024? Кстати, ты имешь ввиду КилоБайты или Килобиты?
uhm писал(а):Хи-хи...
А из чего, по-твоему, состоит стринг?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 91