Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача файлов

1.9K
08 января 2004 года
lexalex
59 / / 23.12.2003
Здрасте!
Есть такая задача - организовать передачу файлов от одного компа к другому. Есть две проги
КЛИЕНТ-СЕРВЕР! Я хотел для этого использовать WinsockControl, но с помощью него получается передовать лишь текстовые файлы и тому подобное. Но главное это передача EXE,BAT,COM файлов и это уже проблема! Подскажите возможные способы решения проблемы!
1.9K
08 января 2004 года
lexalex
59 / / 23.12.2003
Ну что никто не может ничего сказать!? Ну подскажите хоть алтернативу! Или сайт путевый со статьями по этому поводу! Пожалуйста!!!
1.9K
09 января 2004 года
lexalex
59 / / 23.12.2003
Кто-нибудь может подсказать, как полностью считать бинарный файл! Я так понял, что передавая бинарный файл по байту я смогу потом его собрать, но вот как узнать количество таких порций в файле (которые считываются оператором Get) ???
1.9K
13 января 2004 года
MishaSoft
48 / / 16.09.2003
Цитата:
Originally posted by lexalex
Кто-нибудь может подсказать, как полностью считать бинарный файл! Я так понял, что передавая бинарный файл по байту я смогу потом его собрать, но вот как узнать количество таких порций в файле (которые считываются оператором Get) ???



Я конечно не флудер :D , но помоему это работает.
Попробуй:

Dim OneChar As String * 1

Open "Твой ЕХЕ файл" For Random As #1
Do
i = i + 1
Get #1, i, OneChar

'Передаешь этот байт куда там тебе нужно

Loop Until i = LOF(1)

Close #1

258
13 января 2004 года
SergeySV
1.5K / / 19.03.2003
Вообщем, никто не мешает тебе через Winsock передавать файлы .com, .exe и т.д. Winsock все равно что передавать, указываешь тип передаваемых данных - Byte и передавай любые данные, хоть текстовые.

P.S. по сути ты пытаешься изобрести FTP протокол, может тебе проще будет использовать уже готовые ActiveX реализующие FTP протокол передачи файлов (кстати основанные на том же Winsock), чем писать это самому, тогда у тебя уже будет набор готовых удобных методов: и гарантированная передача файла, докачка, ограничение по скорости и т.д.
1.9K
13 января 2004 года
lexalex
59 / / 23.12.2003
Цитата:
Originally posted by SergeySV
Вообщем, никто не мешает тебе через Winsock передавать файлы .com, .exe и т.д. Winsock все равно что передавать, указываешь тип передаваемых данных - Byte и передавай любые данные, хоть текстовые.

P.S. по сути ты пытаешься изобрести FTP протокол, может тебе проще будет использовать уже готовые ActiveX реализующие FTP протокол передачи файлов (кстати основанные на том же Winsock), чем писать это самому, тогда у тебя уже будет набор готовых удобных методов: и гарантированная передача файла, докачка, ограничение по скорости и т.д.


Да проблема не столько в winsock. Когда я открываю просто содержимое EXE файла оно отображается как-то не так ка должно. Т.е. если я просто его передам на другой комп, например, построково и там создам файл с тем же именем он уже не будет запускаться! Вот в чем вопрос.

258
13 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by lexalex

Да проблема не столько в winsock. Когда я открываю просто содержимое EXE файла оно отображается как-то не так ка должно. Т.е. если я просто его передам на другой комп, например, построково и там создам файл с тем же именем он уже не будет запускаться! Вот в чем вопрос.



Хмм, похоже на мой трабл о котором я уже писал здесь в свле время. мне надо было послылать команды на FTP-сервер, и после передачи их через Winsock они коверкались. Но я работал именно с текстовыми данными, т.е. посылал строку (никто тогда не смог помочь, у других людей мой пример работал нормально, я грешил на Юникод, OfficeXp использует юникод по умолчанию; компиллятор Visual Basic 6.3 хранит в юникоде string данные, а Win98 с юникодом не очень дружит). В случае передачи данных типа Byte такой фигни по идее быть не должно, так что я очень удивлен.

P.S. я потом из-за этих проблем забросил идею написания собственного класса FTP-протокола через winsock и стал использовать уже готовый, сторонний ActiveX.

1.9K
13 января 2004 года
lexalex
59 / / 23.12.2003
Цитата:
Originally posted by SergeySV


Хмм, похоже на мой трабл о котором я уже писал здесь в свле время. мне надо было послылать команды на FTP-сервер, и после передачи их через Winsock они коверкались. Но я работал именно с текстовыми данными, т.е. посылал строку (никто тогда не смог помочь, у других людей мой пример работал нормально, я грешил на Юникод, OfficeXp использует юникод по умолчанию; компиллятор Visual Basic 6.3 хранит в юникоде string данные, а Win98 с юникодом не очень дружит). В случае передачи данных типа Byte такой фигни по идее быть не должно, так что я очень удивлен.

P.S. я потом из-за этих проблем забросил идею написания собственного класса FTP-протокола через winsock и стал использовать уже готовый, сторонний ActiveX.


Я вот что имел ввиду: если мы берем EXE файл переименовываем его в txt, копируем содержимое,закрываем нахрен,
создаем новый txt файл, копируем в него из буфера, закрываем и переименовываем в EXE так вот он уже не запуститься и
более того он будет занимать гораздо меньше! По такому же принципу работает построковая отсылка! Вот как же правельно открыть исполняемый файл?

258
13 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by lexalex

Я вот что имел ввиду: если мы берем EXE файл переименовываем его в txt, копируем содержимое,закрываем нахрен,
создаем новый txt файл, копируем в него из буфера, закрываем и переименовываем в EXE так вот он уже не запуститься и
более того он будет занимать гораздо меньше! По такому же принципу работает построковая отсылка! Вот как же правельно открыть исполняемый файл?



Нее, ну так конечно лучше не делать, открывать его как текстовое, потом копировать в буфер, вставлять и сново сохранять - это ты делаешь кучу ненужных преобразований и причем еще неправильных преобразований, ведь исполняемый файл не содержит текстовых данных (в смысле содержит конечно, но и не только, скажем, в меньшем случае). Например: по стандарту исполняемых файлов в системе Win, exe должен содержать в начале определенный заголовок со служебной инфой (там же мелькает единст. читаемая фраза - This program cannot be run in DOS mode). Причем размер ее строго фиксирован и неиспользуемая место до основного кода программы просто заполняется нулями... то что у тебя получается после преобразования содержимого бинарного файла в текст уже будет является полной кашой

Ты должен открыть файл на чтение в режиме Binary. Считать данные в массивчик Byte и его передать по winsock, повторить эти действия до конца файла.

1.9K
13 января 2004 года
lexalex
59 / / 23.12.2003
Цитата:
Originally posted by SergeySV


Нее, ну так конечно лучше не делать, открывать его как текстовое, потом копировать в буфер, вставлять и сново сохранять - это ты делаешь кучу ненужных преобразований и причем еще неправильных преобразований, ведь исполняемый файл не содержит текстовых данных (в смысле содержит конечно, но и не только, скажем, в меньшем случае)
Ты должен открыть файл на чтение в режиме Binary. Считать данные в массивчик Byte и его передать по winsock, повторить эти действия до конца файла.


Да нет я просто описал принцип построковой отправки!
А вот с бинарной отпрвкой у мя наконец вышло за что большое спасибп!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог