И всё-таки опять про winsock dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

И всё-таки опять про winsock dll

Сообщение SeT » 23.10.2005 (Вс) 18:55

Ну дайте пожалуйста простенький исходник клиент-серверного соединения. Мне больше не нужно!!! :cry: :cry: :cry: НУЖНО!!! :cry:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

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

Сообщение tyomitch » 23.10.2005 (Вс) 19:06

SeT, я же тебе давал ссылку на мой пример - он тебе не подошёл, или ты так и не удосужился по ней кликнуть? :roll:
Изображение

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 19:09

Я смотрел! :? . Там больно заумно. Мне нужно простое соединение. Дальше я сам. Ну пожа-а-а-а-алуйста!! :cry: :oops: :pale:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

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

Сообщение Amed » 23.10.2005 (Вс) 19:15

Да что за...

ИНСТРУКЦИИ.
1) Идем на planet-source-code.com
2) Вводим в строку поиска "winsock". Язык - Visual Basic
3) Внимательно смотрим на список выведенных примеров
4) Я бы первым образом кликнул на "Winsock Connection Example"
5) Если не помогло, повторяем пункты 1-3.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.10.2005 (Вс) 19:27

Тама используется контрол, если что!
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 23.10.2005 (Вс) 21:11

Хочеш без Winsock.ocx, попробуй СSocket:
http://www.vbip.com/winsock-api/csocket ... 1.0.12.zip
Или тебе обязательно нужно на winapi?
الفيجوال بيسك الرابح

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 24.10.2005 (Пн) 15:31

Мне не WinAPI. Мне чтобы через ws2_32.dll b через winsock.dll
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.10.2005 (Пн) 16:27

SeT писал(а):Мне не WinAPI. Мне чтобы через ws2_32.dll b через winsock.dll


Мдя©. То есть надо полагать, что winsock.dll иws2_32.dll не есть API? Как интересно! Так что же есть тогда API?
Весь мир матрица, а мы в нем потоки байтов!

575-61
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 21.10.2005 (Пт) 8:09
Откуда: г.Ростов-на-Дону

Сообщение 575-61 » 24.10.2005 (Пн) 23:16

Всё относительно и всё есть - логический хаос.

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

Сообщение tyomitch » 24.10.2005 (Пн) 23:36

575, перечитай вопрос.
Человеку нужно без ocx.
Изображение

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 25.10.2005 (Вт) 0:18

на поприкалуйся над другом в сети :lol:
Вложения
Бяка.rar
поприкалуйся над другом в сети
(21.74 Кб) Скачиваний: 82

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 25.10.2005 (Вт) 15:03

А как узнал, что для прикола? когда winsock-компонент регистрировал? На счёт API: я почемуто всегда думал, что API - функции библиотек shell32.dll, gdi.dll, kernel32.dll. Извиняюсь за ламерство.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 25.10.2005 (Вт) 16:53

Бяка, твой пример на контроле. На тему внимательнее нужно смотреть :x
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

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

Сообщение tyomitch » 25.10.2005 (Вт) 17:00

SeT, user32.dll забыл и в gdi32.dll описался ;-)
Изображение

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 25.10.2005 (Вт) 18:59

SeT, а почему без OCX?

DaSharm_nn
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 25.10.2005 (Вт) 22:41

Сообщение DaSharm_nn » 25.10.2005 (Вт) 22:45

Вообще-то решение уже давным-давно было мноб разработанное и очень простое. Все у меня на сайте сейчас: www.dasharm.com

там и много примеров

Prickly
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 07.10.2004 (Чт) 18:44
Откуда: From Russia

Сообщение Prickly » 25.10.2005 (Вт) 22:53

Что то он у меня не грузится!
Не было бы Гейтса, не было бы нас!

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 25.10.2005 (Вт) 22:54

SeT писал(а):Бяка, твой пример на контроле. На тему внимательнее нужно смотреть :x

Да? тю а я и не знал :D

ну так если те
Код: Выделить всё
Public Declare Function WSAStartupInfo Lib "WSOCK32" Alias "WSAStartup" (ByVal wVersionRequested As Integer, lpWSADATA As WSADataInfo) As Long
Public Declare Function WSACleanup Lib "WSOCK32" () As Long
Public Declare Function WSAGetLastError Lib "WSOCK32" () As Long
Public Declare Function WSAStartup Lib "WSOCK32" (ByVal wVersionRequired As Long, lpWSADATA As WSAData) As Long
Public Declare Function gethostname Lib "WSOCK32" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32" (ByVal szHost As String) As Long
.....

непонравилось то надо на контроле делать 8)

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 26.10.2005 (Ср) 15:18

Без OCX потому что для него регистрация нужна. А библиотеки сразу в составе Окон.
Dasharm, Ты чё-то судя по сайту только троянами да сканерами портов занимаешься :shock:
Про dll ничего у тебя не нашёл. Только на контролах.
Мне нужно, чтобы ВООБЩЕ без контрола. Чисто dll. Модуль вот который давали скачал - самое то. Вот только разобраться в применении не могу. :oops:
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

DaSharm_nn
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 25.10.2005 (Вт) 22:41

Сообщение DaSharm_nn » 26.10.2005 (Ср) 17:32

Мне нужно, чтобы ВООБЩЕ без контрола. Чисто dll.


ну, знаешь, ты сначала разберись, какая ДЛЛ тебе нужна.
Если юзать стандартные - не будет "событий". Думаю, тебе это не подойдет. Можно их реализовать другими способами, каллбеками и т. п. Но, думаю, ты это делать не собираешься.

Активикс ДЛЛ - вот тут можно реализовать "события", но ведь тебе компоненты лишние не подходят, да?

Хм, тяжело тебя понять....
Вот ещё:

Мне не WinAPI. Мне чтобы через ws2_32.dll b через winsock.dll


ну, здесь ты ошибся, но понятно что ты хотел. Если ты думаешь, что работать с Winsock.dll или ws2_32.dll можно так, как и с winsock.ocx - ошибаешься парень....

Но, думаю, все что тебе нужно - работать с сетью без дополнительных компонентов, я правильно понял? Если да, тогда иди на http://dasharm.com , птом в пункт "Файлы", а далее в подменю " Мои компоненты" . Качаешь оттуда VBSocket, додаешь его в проект и все, вот тебе что-то типа винсока, только без дополнительных активиксов и библиотек.

Ещё раз повторю: исполнение VBsocket'а - Uer Control. это значит, что ты просто добавляешь его в проект и он компилируеться ВМЕСТЕ с твоим приложением, т. е. в ехе файл.

Ну дайте пожалуйста простенький исходник клиент-серверного соединения

Сделай простенькое клиент-серверное приложение на VBsocket - вот и можешь называть его "клиент-серверным приложением на ws_2_32.dll"

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

Сообщение tyomitch » 26.10.2005 (Ср) 17:47

DaSharm_nn писал(а):
Мне нужно, чтобы ВООБЩЕ без контрола. Чисто dll.


ну, знаешь, ты сначала разберись, какая ДЛЛ тебе нужна.
Если юзать стандартные - не будет "событий". Думаю, тебе это не подойдет. Можно их реализовать другими способами, каллбеками и т. п. Но, думаю, ты это делать не собираешься.

Активикс ДЛЛ - вот тут можно реализовать "события", но ведь тебе компоненты лишние не подходят, да?

Ув. тов. DaSharm знает, что обычные классы в обычных Standard EXE умеют генерировать события?
Изображение

DaSharm_nn
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 25.10.2005 (Вт) 22:41

Сообщение DaSharm_nn » 26.10.2005 (Ср) 21:43

Ув. тов. DaSharm знает, что обычные классы в обычных Standard EXE умеют генерировать события?


Ув. тов. DaSharm знает намного больше. Чё ты мне о классах парить собрался? Я ВЕДЬ ГОВОРЮ, МОЙ КОМПОНЕНТ С ИСПОЛНЕНИЕМ USER CONTROL!

Почему? ну давай помысли, если бы я делал асинхронный сокетный движок в классе, где бы я взял окно? хм... Создать и сабкласить, да? В классе возможно, но это немного изврат, можно не парясь в модуль оконную процедуру впихнуть, но зачем нам ещё 1 модуль к классу? Я поступил проще всего. Запихнул в USER CONTROL, окна - стандартные чекбоксы, сообщения - стандартные типа MouseUP, кода - мнеьше на 70% подтребовалось и места в скомпилированной проге тоже. Ещё есть какие-то вопросы?

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 26.10.2005 (Ср) 21:50

SeT писал(а):Без OCX потому что для него регистрация нужна.


И в етом то вся проблемка? чё ты сразу то несказал?
на поюзай регистрилку DLL/OCX:

Код: Выделить всё
Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long

Public Function DLLOCX(ByVal hWnd As Long, ByVal Path As String, ByVal Register As Boolean) As Boolean

    On Error Resume Next
    Dim LB As Long, PA As Long

    LB = LoadLibrary(Path)
    If LB = 0 Then Exit Function
 
    If Register = True Then
     PA = GetProcAddress(LB, "DllRegisterServer")
    Else
     PA = GetProcAddress(LB, "DllUnregisterServer")
    End If
   
    If PA = 0 Then GoTo 0
    Call CallWindowProc(PA, hWnd, ByVal 0&, ByVal 0&, ByVal 0&)
    DLLOCX = True
0
    Call FreeLibrary(LB)

End Function

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.10.2005 (Ср) 21:54

DaSharm_nn писал(а):Я ВЕДЬ ГОВОРЮ, МОЙ КОМПОНЕНТ С ИСПОЛНЕНИЕМ USER CONTROL!

Для начала, не ори, слышим.

DaSharm_nn писал(а):Ещё есть какие-то вопросы?

Сначала ответь на первый, а именно прокомментируй смысл
DaSharm_nn писал(а):ну, знаешь, ты сначала разберись, какая ДЛЛ тебе нужна.
Если юзать стандартные - не будет "событий". Думаю, тебе это не подойдет. Можно их реализовать другими способами, каллбеками и т. п. Но, думаю, ты это делать не собираешься.

Активикс ДЛЛ - вот тут можно реализовать "события", но ведь тебе компоненты лишние не подходят, да


Из этого пассажа ясно видно, что ты утверждаешь, будто события классов можно сделать, если поместить классы в ActiveX dll. После чего тебя совершенно адекватно спросили - а ты вообще знаешь, что события и в обычных классах бывают?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 27.10.2005 (Чт) 16:12

Бяка, мне нужно, чтобы рядом с компилированной программой вообще никаких лишних подозрительных файлов не лежало.
Я в своё время скач\чивал статью не то vbstreets, не с vbrussian о том как организовать клиент-серверное приложение без контрола. Только в исходнике перечислены не все функции, необходимые для подключения. Ладно, как-нибудь разберусь :(
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

DaSharm_nn
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 25.10.2005 (Вт) 22:41

Сообщение DaSharm_nn » 27.10.2005 (Чт) 16:22

Из этого пассажа ясно видно, что ты утверждаешь, будто события классов можно сделать, если поместить классы в ActiveX dll.



Уважаемый GSerg, найди ещё раз мой ответ и посмотри, что я там немножко выше него закоментировал. ТЕПЕРЬ ОСТАЛИСЬ ВОПРОСЫ??? ИЛИ ВИДНО ПЛОХО???

а именно прокомментируй смысл


SeT написал:
Мне нужно, чтобы ВООБЩЕ без контрола. Чисто dll.


Вот я ему и написал о ДЛЛ, ведь он не о классах говорил, не так ли?
И вообще, внимательней читайте, прежде чем ко мне придираться, ок?

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

Сообщение tyomitch » 27.10.2005 (Чт) 18:00

DaSharm_nn писал(а):
Ув. тов. DaSharm знает, что обычные классы в обычных Standard EXE умеют генерировать события?


Ув. тов. DaSharm знает намного больше. Чё ты мне о классах парить собрался? Я ВЕДЬ ГОВОРЮ, МОЙ КОМПОНЕНТ С ИСПОЛНЕНИЕМ USER CONTROL!

Ув. тов. DaSharm говорил не это. Он говорил:
DaSharm_nn писал(а):Если юзать стандартные - не будет "событий". ... Активикс ДЛЛ - вот тут можно реализовать "события", но ведь тебе компоненты лишние не подходят, да?

При чём здесь юзерконтрол?


DaSharm_nn писал(а):Почему? ну давай помысли, если бы я делал асинхронный сокетный движок в классе, где бы я взял окно? хм... Создать и сабкласить, да?

Видел и такое исполнение, но я от него не в восторге.

DaSharm_nn писал(а):Ещё есть какие-то вопросы?

Есть. Про то, что события можно получать не только виндовыми сообщениями, но и - сорри за тавтологию - событиями (WSAEventSelect), ув. тов. DaSharm знает?

Про то, что рассылка Винсоком оконных сообщений предназначена только для совместимости с прогами, написанными под Winsock 1.1 / Windows 3.x, ув. тов. DaSharm знает?

DaSharm_nn писал(а):SeT написал:
Мне нужно, чтобы ВООБЩЕ без контрола. Чисто dll.


Вот я ему и написал о ДЛЛ, ведь он не о классах говорил, не так ли?

Он писал о ws2_32.dll, а не об ActiveX DLL для отлова событий.
Изображение

DaSharm_nn
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 25.10.2005 (Вт) 22:41

Сообщение DaSharm_nn » 27.10.2005 (Чт) 19:02

(WSAEventSelect), ув. тов. DaSharm знает?


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

Он писал о ws2_32.dll, а не об ActiveX DLL для отлова событий.


Вообще-то он сам не знал, о чем писал, вот я и подумал, что хочет он реализовать свой компонент в ДЛЛ и описал ему тему.

рассылка Винсоком оконных сообщений предназначена

Ты это из учебника "для чайников" вычитал? Кто тебе такое сказал??? Это есть стандартный подход с переходом на асинхронные сокеты, ты меня учить будешь? Сперва сделай то, что я, вот тогда и поговорим, или я чего-то недопонял? Илы ты у нас в почете? ты вообще думаешь что ты пишешь?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 27.10.2005 (Чт) 19:08

DaSharm_nn
Спусти пар, дружок. Ты не достаточно знаешь местных шаманов, чтоб их высмеивать.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

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

Сообщение tyomitch » 27.10.2005 (Чт) 20:45

DaSharm_nn писал(а):
(WSAEventSelect), ув. тов. DaSharm знает?


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

См. мой однопоточный пример их использования - тот, что я давал SeT-у.
Ну и потом, есть Waiter от GSerg-а.

DaSharm_nn писал(а):
рассылка Винсоком оконных сообщений предназначена

Ты это из учебника "для чайников" вычитал? Кто тебе такое сказал???

http://tangentsoft.net/wskfaq/articles/ ... egies.html

Asynchronous Winsock I/O (WSAAsyncSelect()) isn't the most efficient I/O strategy, but it's not the least efficient, either. It's a fine way to go in a program that deals with low volumes of data. As the volume of data goes up, the overhead becomes more significant.
...
The main problem with doing this is that many servers don't have a user interface, and thus no message loop. A server without a UI using asynchronous sockets would have to create an invisible window solely to support its asynchronous sockets. If your program already has a user interface, though, asynchronous sockets can be the least painful way to add a network server feature to it.
...
Another reasonable choice for handling a moderate number of connections is event objects. These are very efficient in and of themselves.


DaSharm_nn писал(а):Это есть стандартный подход с переходом на асинхронные сокеты, ты меня учить будешь? Сперва сделай то, что я, вот тогда и поговорим, или я чего-то недопонял? Илы ты у нас в почете? ты вообще думаешь что ты пишешь?

Ага, значит тебе других учить можно, а другим тебя нельзя? И чем же ты такой особенный?
Последний раз редактировалось tyomitch 27.10.2005 (Чт) 20:56, всего редактировалось 1 раз.
Изображение

След.

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

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

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

    TopList