|
0 / 0 / 0
Регистрация: 30.08.2007
Сообщений: 35
|
|
Как открыть НЕблокирующий сокет?30.03.2008, 23:57. Показов 2820. Ответов 8
Метки нет (Все метки)
Привет всем.
Тут вот задумал проксю написать - а вот как на VB неблокирующий сокет открыть не знаю. В С++ лезть не очень хочется - может кто знает ??? ЗЫ это сокет на который клиент может открыть несколько соединений. С уважением жду ответа...
0
|
|
| 30.03.2008, 23:57 | |
|
Ответы с готовыми решениями:
8
Как узнать, что неблокирующий сокет отключился Неблокирующий сокет Неблокирующий сокет |
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
||||||
| 31.03.2008, 14:36 | ||||||
|
Вот примерчик если знаком с Winsock API.
Функция открытия сокета и установки/снятия блокировки. Не обращай внимание на хаос - это только для примера. Реально эти функции и объявления находятся в разных модулях и классах. Разберёшся.
0
|
||||||
|
0 / 0 / 0
Регистрация: 30.08.2007
Сообщений: 35
|
|
| 31.03.2008, 19:22 [ТС] | |
|
Вот спасибо за ответ - а то я уже думал на С++ писать придется...
Только вот что... функция dd() создает сокет скорее всего функция IsBlocked (IsBlocked As Boolean) выполняе комманду на сокете - я так понял устанавливает его тип - блокированный или нет... только вот позвольте полениться - считывание и прием.передача данных так же через API ??? т.е. по проще никак нельзя ??? т.е. события к сокету привязять и т.д. ... :-) И где взять список комманд которые можно выполнять на сокете ?? в МСДН я чтото не все нашел ... С уважением...
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 31.03.2008, 20:01 | |
|
1. да, dd() просто создаёт сокет ... dd() написал для бОльшей понятности. А то долго пришлось бы пояснять откуда взялся m_Socket в IsBlocked
![]() 2. ioctlsocket (для моего удобства названо WS_IOControl) так-же меняет и другие установки, но я их не использовал - подробнее в МСДН 3. 'считывание и прием.передача данных так же через API ?' - не обязательно. Можно взять хэндл сокета из Winsock контрола и потом использовать его в API вызовах. Но тут возникает некая неопределённость, которая мне лично не нравится. Неизвестно поведение контрола если менять установки вне его. Предпочитаю точно знать что происходит в моей программе (насколько это возможно в VB) а не думать /гадать 'а чего эта штуковина тут вытворяет ?'. 4. 'МСДН я чтото не все нашел' - трудно искать если неизвестно чего Тут у меня нету МСДН, но примерно: Windows network services в оглавлении. Или, для начала, в поиске набери 'ioctlsocket'.Всё. Устал писать Вроде всё должно быть понятно ...
0
|
|
|
0 / 0 / 0
Регистрация: 30.08.2007
Сообщений: 35
|
|
| 31.03.2008, 23:09 [ТС] | |
|
Ага ясненько.
Только вот я не совсем понял как это, но скорее всего использовать 'событейную' модель сокета, и вызовы направлять на окно с хендлом Winsoc, т.е. фактически самому Winsock, а исходя из стандарта системных сообщений, то в случае какого то события на порту Winsock получит именно то сообщение которое нужно ??? ;-) И эм-м-м я так глянул на часть программы Public Enum SocketProtocol SP_IP = 0 SP_ICMP = 1 SP_IGMP = 2 SP_GGP = 3 SP_TCP = 6 SP_PUP = 12 SP_UDP = 17 SP_IDP = 22 SP_ND = 77 SP_RAW = 255 SP_MAX = 256 End Enum и э-э-э, часть я знаю, но большую половину нет ... к примеру RAW я только начал под него копать - как есть опыт работы ??? хочу написать свой шлюз под виндой 98. Т.е. чтоб в качестве шлюза использовать свой же ПК.
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 02.04.2008, 11:27 | |
|
'но скорее всего использовать 'событейную' модель сокета, и вызовы направлять на окно с хендлом Winsoc, т.е. фактически самому Winsock, а исходя из стандарта системных сообщений, то в случае какого то события на порту Winsock получит именно то сообщение которое нужно '
Ничего не понял из того что ты спросил ![]() Хэндл сокета можно использовать для соединения с локальным/удалённым сокетом (для 'простых' - RAW, ICMP ... соединение не нужно), чтения, записи и.т.д. Если будешь использовать контрол, а не 'чистый' API то есть смысл использовать функции Winsodk API только для специфичных задач, не реализованных в контроле. Используя котрол, взять у него хэндл и потом получать-отправлять сообщения (что делает сам контрол) - похоже на извращение. IMHO Изучайте матчасть, батенька В МСДН усё есть и каждая функция описана. Если конечно лень, можно и примеры поискать, но тогда труднее понять зачем всё это надо.Успехов.
0
|
|
|
0 / 0 / 0
Регистрация: 30.08.2007
Сообщений: 35
|
|
| 07.04.2008, 16:17 [ТС] | |
|
Я к тому - что эм-м-м случаем нет опыта работы и вообще знаний относительно всех этих 'остальных' типов сокета??? то самому разбираться - времени жалко это ж не основная работа... вот думаю помощь была бы к стати...
С уважениме. Жду ответа... ЗЫ - сколько всего интересного ... :-)
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 07.04.2008, 17:02 | |
|
Это ты мудро придумал
) Только время штука такая - всем нехватает. так что придётся самому изучать.vbip.com - там по ссылкам дальше пойдёшь ...
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 07.04.2008, 17:31 | |
|
Это ты мудро придумал
) Только время штука такая - всем нехватает. Так что придётся самому начала изучать. Чтоб представление какое было...vbip.com - для базы самое то. Но на engl только. В .ру, по-моему, до таких сайтов не дошли... Ну а если чего конкретно, завсегда пожалуйста - спрашивай.
0
|
|
| 07.04.2008, 17:31 | |
|
Помогаю со студенческими работами здесь
9
Неблокирующий сокет Как открыть файл через сокет Как открыть сокет через прокси сервер? Открыть сервер сокет Как только происходит попытка создать сокет для UDP - сокет TCP сразу ломается (выдает 10093). Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|