Страница: 1 | 2 | 3 |
Вопрос: Пресылка файла через Винсрк только по 2-м айпи
Добавлено: 07.06.05 14:50
Автор вопроса: MYSTERIOR | Web-сайт:
Господа, как переслать файл через винсок ТОлько имея начальный айпи и удалённый айпи, и как на удалённом айпи сей файл получить и сохранить на диск? Примерчика не дадите? Заранее благодарен.
Ответы
Всего ответов: 31
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 07.06.05 15:30
Гм.. Вопрос конечно очень интересный...
Только вот не вижу большой пользы от файла, который может уместиться в
рамки IP-адреса (4 байта, либо по протоколу IPv6 - 6 байт)... Да и
сменить IP-адрес, тем более чужого компьютера, не так-то просто...
Забавная задумка.. Оригинально!
Номер ответа: 2
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #2
Добавлено: 07.06.05 15:43
2 Павел: а что, правда в IPv6 IP-адрес 6 байт?
Номер ответа: 3
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #3
Добавлено: 08.06.05 13:51
To Мистерио
Мда.. Задумка класс. Скажи одну вещь - во первых, какой протокол будет?
И вообще будет ли твоя прога стоять на обоих компах??? или ты хош ЗАСТАВИТЬ удаленный комп принять твой файл?
Номер ответа: 4
Автор ответа:
MYSTERIOR
ICQ: 227369659
Вопросов: 31
Ответов: 96
Web-сайт:
Профиль | | #4
Добавлено: 08.06.05 16:05
2RomaVis:
1)Ну наверное чтобы файл пришёл нормально надо юзать тсп/айпи.
2)Знаете что, я вот тут конечно рад, что такая дискуссия получилась, но у меня такое чувство, что я имел ввиду несколько другое: моя прога будет стоять на обоих компах и на моём будет происходить отправка файла, а на джругом этой же прогой будет происходить получение файла, причем я знаю ip того компа куда надо засылать файл (ну и ес-но свой ip . ПО-моему, вопрос элементарный, когда-то я такие весчи легко реализовывал, но так получилось, что я ВБ 1.5 года в руки - не брал - прибил он меня, я так сказать вообще забил на кодинг, и вот щас чёт припёрло опять...
Номер ответа: 5
Автор ответа:
MYSTERIOR
ICQ: 227369659
Вопросов: 31
Ответов: 96
Web-сайт:
Профиль | | #5
Добавлено: 08.06.05 16:06
По-моему, такое выделывать меня научили на этом форуме!
Номер ответа: 6
Автор ответа:
MYSTERIOR
ICQ: 227369659
Вопросов: 31
Ответов: 96
Web-сайт:
Профиль | | #6
Добавлено: 08.06.05 21:00
Ну так что с пересылкой файлов... Хотя нет, спрошу по другому, чтоб было понятнее: У меня есть переменная типа $. В ней содержимое файла...
Мне надо передать ету строку на другой компутер, шог мне делать? Учитывая то что у меня на другой машине тоже стоит моя прога? Дайте плз сэмл...
Номер ответа: 7
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #7
Добавлено: 08.06.05 21:01
Знач насет пересылки... Пользуй протокол TCP/IP
Кстати слыш, если ТЫ сробираешся пересылать ЕМУ файл, то твой АйПи здесь не нужен... Он нужен только в обратной ситуации.
Значит вот што я скажу -
1) Проги должны быть типа Сервер\Клиент (думаю ты сам сможеш это организовать)
2) Думаю теорию соединений протокола ТСП\ИП ты знаеш (ели нет - учи, она простая)
3) По поводу самого процесса пересылки файла -
Вот маленький примерчик - он вроде...
Dim bytearray() as Byte
Dim TM as Long
Sub OpFile(File as string)
Open File for binary as #1 'номер любой,желательно получить при помощи FreeFile
Get #1, ,bytearray()
close #1
end sub
Sub Transfer(RemoteIP as String)
WS.Close
WS.Connect RemoteIP
do while WS.State <> 7 'Можно использовать вместо 7 sckConnected
doevents
Loop
Do while TM <10000 'Небольшая задержка для страховки..
DoEvents
TM=TM+1
loop
WS.SendData bytearray()
End Sub
Номер ответа: 8
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #8
Добавлено: 08.06.05 21:06
Как ты уже понял WS - это WinSock
Теперь по поводу серв. части
Dim bytearray() as Byte
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
bytearray()=ws.GetData
''Записуем полученное в файл...
Open "C:\TRANSFILE1.hjkd" For Binary As #1
Put #1, ,bytearray()
Close #1
Вот ты получил данные(файл) и сохранил его на диске С, под именем TRANSFILE1.hjkd . Зачем такое расширение? Затем чтобы его можно было потом переименовать.
Номер ответа: 9
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #9
Добавлено: 08.06.05 21:11
НО СКАЖУ СРАЗУ! Я НАПИСАЛ ЭТОТ КОД ЗА 3 минуты експромтом. Он не тестилса не разу. И может содержать кучу ошибок!!!
Даже если он работает, не думай что у тебя в руках шедевр - это лиш сама теория ппосылки\приема файла. Этот код может только отправить один файл и сервер примет его. Я не сказал некоторых вещей - порт иное.. Разберись как код робить, если чото неясна - задай вопросы. Я отвечу.
Номер ответа: 10
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #10
Добавлено: 08.06.05 21:14
КСТАТИ СКАЖУ ОДНУ ВЕЩЬ
1) обое кодов надо писать в коде форм.
2) У клиента в процедуре OpFile есть параметр File - это путь к файлу
Номер ответа: 11
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #11
Добавлено: 08.06.05 21:15
Ну как? Работает?
Номер ответа: 12
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #12
Добавлено: 08.06.05 21:24
Кстати
Не ПУГАЙ МЕНЯ!!!! Файл - это не строка! Токо текстовые файлы можно использовать как строки!Win32 PE файл(ЕХЕ всякие, ОСХ и ДЛЛ и ещо чото..) представляет собой что-то вроде байтового массива. Если ты загрузиш РЕ файл в строку, и сохраниш строку на диск, то этот файл у тя никогда в жизни не заработает!
И ещё одно. СОВЕТУЮ Объявляй переменные, в которые буш сувать файлы в виде байтового массива - как у меня :
P.S
Если делаеш текстовый редактор, тогда исключение - для редактирования ТХТ, ДОК, и всяких других текстов (не РЕ файлов) подойдет переменная без скобок и в типе String - просто загрузить массив байтов в ТекстБокс или RichTextBox просто сложно или вообще невозможно"
Номер ответа: 13
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #13
Добавлено: 08.06.05 21:34
а что такое строка?
RomaVis, тебе надо ещё немало литературы прочесть, прежде чем так смело постить на этом форуме, тебе ещё повезло, что сюда sne, sharp,CyRax, Cresta не заглядывали они бы тебя быстро нарпавили на путь истенный ))
Номер ответа: 14
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #14
Добавлено: 08.06.05 21:44
2 DaSharm
Знаю.. Я ващето теорию саму коренную очень плохо знаю. Мож я просто непральна выразился.
Просто сатри сам - Загружаешь ЕХЕ файл в строку, и сохраняеш строку в файл с расширением ЕХЕ куда нить. И что??? ЭТОТ ФАЙЛ ЗАПУСТИТСЯ??? НЕ В ЖИЗНИ.
П.С
Всётаки он запустится, если предварительно подготовить переменную типа String. ПОДГОТОВИТЬ - имею ввиду String PREMNAYA, LOF(FileNumber)
Номер ответа: 15
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #15
Добавлено: 08.06.05 22:11
это связано с тем, что строки бывают разных типов, ANSI ASCII и UNICODE, UNICODE без проблем подходит для хранения файлов в них... СТрока это и есть байтовый массив.