Передача файла через WinSock

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
killerb
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 27.01.2005 (Чт) 23:08
Откуда: Днепропетровск

Передача файла через WinSock

Сообщение killerb » 14.03.2005 (Пн) 0:31

Я пишу программу - чат и хотелось бы, чтобы можно было передавать файлы по сети, но я не знаю как это реализовать ... Если кто-то знает плиз поделитесь ... :) а то уже столько ночей не сплю ...
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 14.03.2005 (Пн) 0:38

Посмотри http://www.vbip.com/ . Там было много статей по раличным вариантам использования Winsock

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 14.03.2005 (Пн) 1:09

Alexanbar писал(а):Посмотри http://www.vbip.com/ . Там было много статей по раличным вариантам использования Winsock


Было, да сплыло, сайт не работает=)

killerb
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 27.01.2005 (Чт) 23:08
Откуда: Днепропетровск

Сообщение killerb » 14.03.2005 (Пн) 1:24

спасибо за ссылку, вот только она не работает, как было сказано выше. А может быть кто-то подскажет какую-нибудь команду, вроде
winsock1.sendfile ... :roll: ?
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Сообщение snov » 14.03.2005 (Пн) 7:13

killerb писал(а):спасибо за ссылку, вот только она не работает, как было сказано выше. А может быть кто-то подскажет какую-нибудь команду, вроде
winsock1.sendfile ... :roll: ?
Winsock1.SendData ...
Там же не только текст можно отправлять

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 14.03.2005 (Пн) 15:19

Друг, тебе нужно воспользоваться поиском по форуму!!!

Лично я тут уже несколько таких прог кинул...!
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 14.03.2005 (Пн) 15:22

вот тут есть несколько:
http://bbs.vbstreets.ru/viewtopic.php?p=88264
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

killerb
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 27.01.2005 (Чт) 23:08
Откуда: Днепропетровск

Сообщение killerb » 14.03.2005 (Пн) 15:23

спасибо
Жизнь - это карусель, на которой никому не дано удержаться надолго. Стивен Кинг

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 14.03.2005 (Пн) 20:16

А сайт vbip рабоает. Толко что проверил.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.03.2005 (Пн) 20:42

Только vbip.net, если я не ошибаюсь ;)

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 14.03.2005 (Пн) 23:57

Не, Amed http://www.vbip.com/ и он работает... :wink:

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 15.03.2005 (Вт) 8:00

Меня сильно интересует это проблема тоже, но я не могу разобраться в тех программах даже в той, которя мне показалась самой легкой (Sender). Не могли бы вы объяснить или написать самый простой пример т.е без строк лишнего кода.

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 15.03.2005 (Вт) 9:46

Кстати говоря, у ваших программ хороший дизайе исполнение, но такой способ передачи файлов просто ужасен при тесте, даже самые простые программы для передачи файлов работают быстрее в 1.5-2 раза! А уж специальные программы обгоняют и в 3-4 раза.
Но всеравно я хотел бы узнать подробнее, чтобы самому попытаться устранить этот недодстаток.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 15.03.2005 (Вт) 19:13

Возможно, что скорость передачи можно повысить, если файл предварительно сжать архиватором. Но, по идее, модем (если через него идёт передача), должен сам сжимать.

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 15.03.2005 (Вт) 19:21

Нет, передача идет не через модем. Я в местной локальной сети. А файлы запакованы в rar.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 15.03.2005 (Вт) 20:50

Вообще-то, можно для передачи файлов вообще не привлекать Winsock.
Просто нужно к требуемой папке подключиться. А дале можно использовать любые средства для проведения файловых операций.
Вот нужные ф-ции:

Public Declare Function WNetAddConnection Lib "mpr.dll" _
Alias "WNetAddConnectionA" _
(ByVal lpszNetPath As String, _
ByVal lpszPassword As String, _
ByVal lpszLocalName As String) As Long
Public Declare Function WNetCancelConnection Lib "mpr.dll" _
Alias "WNetCancelConnectionA" _
(ByVal lpszName As String, _
ByVal bForce As Long) As Long
'------------------------------------------------------
'Константы
'------------------------------------------------------
'Public Const NO_ERROR = 0 ' dderror
Public Const WN_NO_ERROR = 0 'NO_ERROR
Public Const ERROR_BAD_USERNAME = 2202&
Public Const ERROR_INVALID_PASSWORD = 86&
Public Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD
Public Const WN_BAD_USER = ERROR_BAD_USERNAME
'-----------------------------------------------------
Public Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

rkhodjaev
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 29.03.2007 (Чт) 9:28
Откуда: Dushanbe

Сообщение rkhodjaev » 16.04.2007 (Пн) 13:31

Ребята ссылка у вас не работаеть http://www.vbip.com/ и + где можно прочитать как передать файл по Винсоку, я использоваль контроллер и передал из клиентской текстбокса в серверный текстбокс, все ок, вот теперь думаю как отправить файл?Если разница передачи текст от файла?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 16.04.2007 (Пн) 16:29

Нет. И то и другое - суть байтовые массивы.
Лучший способ понять что-то самому — объяснить это другому.

Grover
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 29.03.2007 (Чт) 7:46

Сообщение Grover » 17.04.2007 (Вт) 15:55

Я посмотрел пример данный выше и возник вопрос:

Я так понял, что WinSock не останавливает программу для получения всей строки целиком? Т.е. строка отправляется частями и на каждую часть происходит событие DataArrival ? Если так, то придется самому контролировать целостность переданной строки, точнее ее полноту?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.04.2007 (Вт) 15:57

1) Пакет либо придёт, либо не придёт вообще. Т.е. битый пакет не придёт. TCP это гарантирует.
2) Пакеты придут и собирутся в том порядке, в каком они разбились и ушли.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 19.04.2007 (Чт) 21:32

немм ну посмотрите как работает HTTP. ну и поймете как да что делать. 8)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.04.2007 (Чт) 21:55

И причём тут HTTP ? :?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

rkhodjaev
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 29.03.2007 (Чт) 9:28
Откуда: Dushanbe

Сообщение rkhodjaev » 20.04.2007 (Пт) 8:07

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

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.04.2007 (Пт) 8:19

SSL, VPN, самодельное шифрование.
Lasciate ogni speranza, voi ch'entrate.

rkhodjaev
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 29.03.2007 (Чт) 9:28
Откуда: Dushanbe

Сообщение rkhodjaev » 20.04.2007 (Пт) 9:13

Alibek, можно два остальных как то обсудить:
2)Если построить систему банк-клиент, то каждому клиенту как создать VPN канал?Я имею виду сложность и это не дорогое ли удовольствие?
3) Какие алгоритмы можно использовать?То есть чу-чуть по легче для реализования но надежность нормальная было бы?

P.S. Так как я студент, а не крутой программист, поэтому пока с легкого

X-hacker
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 26.08.2006 (Сб) 1:22
Откуда: Moldova

Сообщение X-hacker » 22.04.2007 (Вс) 23:49

Александр80 писал(а):Не, Amed http://www.vbip.com/ и он работает... :wink:


Александр80
Вложения
Работает.JPG
Ну, ну, как же, работает!
Работает.JPG (35.72 Кб) Просмотров: 1575

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.04.2007 (Пн) 3:08

X-hacker, это ты отвечаешь на пост от 15.03.2005?
Ага, самое время ;-)
Изображение

rkhodjaev
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 29.03.2007 (Чт) 9:28
Откуда: Dushanbe

Сообщение rkhodjaev » 23.04.2007 (Пн) 7:50

Ребята можно вставить какие либо ограничение на прогу- Winsocк?Я имею виду принимать файлы через определенные АЙПИ-адресса или опред форматы файлов? :roll:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.04.2007 (Пн) 8:01

Можно.
Lasciate ogni speranza, voi ch'entrate.

rkhodjaev
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 29.03.2007 (Чт) 9:28
Откуда: Dushanbe

Сообщение rkhodjaev » 23.04.2007 (Пн) 8:09

alibek
Как то можеш обяснить или (же на все вопросы которые были) ответиш коротобну если не сложно!!

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 87

    TopList