Баг при массовой рассылке с помощью Winsock

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

Баг при массовой рассылке с помощью Winsock

Сообщение BasMan » 05.07.2003 (Сб) 9:00

http://vbs.rВозможно кто-то уже сталкивался с такой ошибкой и знает ответ. У меня программа, сетевой клиент-сервер, используемый протокол TCP, к серверу могут подключатся несколько клиентов одновременно, (все подключаются к 0 сокету, при подключении грузится еще один сокет, и отправляется подтверждение подключения с него), ошибка (я думаю это ошибка), заключается в следующем, теперь если я захочу в цикле отправить данные на несколько сокетов:

public sub SendData (strInData as string)
for a=1 to Conf.Sockets
Socket(a).senddata strInData
next
end sub

данные приходят только к сокету который будет последним которому данные были отправлены. Это конечно устраняется введением паузы не менее .7 секунды после команды отправки данных и данные идут по всем сокетам, но меня это не устраивает, если у меня 200 клиентов, то отправка данных на все займет ого-го сколько времени. В связи с этим я в данный момент работаю с протоколом UDP (выполнил свою так-сказать реализацию протокола TCP поверх UDP), так как с ним, описанных выше проблем не возникает. Прошу отвечать на этот вопрос только если вы знаете ответ.

(Необходимо для усовершенствования работы сетевого чата)
Единственный бог, это Root!

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

Сообщение alibek » 05.07.2003 (Сб) 12:30

После SendData полезно делать DoEvents.

А UDP использовать не надо, уж очень сетку нагружает.
Lasciate ogni speranza, voi ch'entrate.

Alfa
Бывалый
Бывалый
 
Сообщения: 249
Зарегистрирован: 12.01.2003 (Вс) 20:15
Откуда: Россия, Красноярск

Ответ

Сообщение Alfa » 05.07.2003 (Сб) 18:36

А можно чат глянуть?

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.07.2003 (Вс) 8:20

О, и мне можно глянуть? А я тебе свой пришлю...
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

BasMan
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.07.2003 (Сб) 8:36
Откуда: Костанай

Сообщение BasMan » 07.07.2003 (Пн) 5:35

Tarik писал(а):О, и мне можно глянуть? А я тебе свой пришлю...


Извиняюсь, но я не один автор, а рассылать общее мне одному мне как-то не с руки, во вторых мы пока исходники открывать не будем (есть некоторые проблемы с безопасностью, а пользователей у ней будет немеряно! что-то около 9*13*20 компов (откуда я, говорить не буду :) )), но если есть какие вопросы по подробнее, пишите, объясню, растолкую .... (Вообще по завершению разработок, я планирую опубликовать эту прогу под лицензией GNU GPL 2), так что ждите (сколько, сказать немогу :((( ) ....
В общих чертах: многокомнатный чат с регистрацией пользователей, магазином прав, игнором, передачей файлов, "удаленным помошником", поддержкой смайлов и различных гарнитур шрифтов (на основе браузера HTML и моего языка разметки) и анализатором на предмет присутствия оскорительных слов и выражений, и встроенный веб сервер который транслирует общение в чате в веб. В планах добавить форум, ботов, и ... да короче много всего в планах, разработки то мы начали только месяц назад!

Удачи!
Если срочно что надо, пишите: akossov@taxkost.mgd.kz
Единственный бог, это Root!

BasMan
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.07.2003 (Сб) 8:36
Откуда: Костанай

Сообщение BasMan » 07.07.2003 (Пн) 5:41

alibek писал(а):После SendData полезно делать DoEvents.

А UDP использовать не надо, уж очень сетку нагружает.


Спасибо за совет, но .... я уже пробовал DoEvents, как было так и есть ....

Ничего подобного, не нагружает сеть UDP (так написано чуть ли не в большей части всех руководств и манов по протоколам), (по крайней мере нагружает меньше чем TCP).

Удачи!
Единственный бог, это Root!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 07.07.2003 (Пн) 7:51

и анализатором на предмет присутствия оскорительных слов и выражений

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

Странно, я когда писал чат, у меня сначала была такая же ошибка. Потом поставил DoEvents - и всё стало нормально :roll:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

BasMan
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.07.2003 (Сб) 8:36
Откуда: Костанай

Сообщение BasMan » 07.07.2003 (Пн) 8:03

Tarik писал(а):
и анализатором на предмет присутствия оскорительных слов и выражений

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

Странно, я когда писал чат, у меня сначала была такая же ошибка. Потом поставил DoEvents - и всё стало нормально :roll:


Все "плохие" слова ложим в файл, затем при запуске читаем их из файла в массив ... теперь когда идет сообщение (у меня через спец. функцию, в пераметрах которой указвается ник, тип сообщения (приват, простое или системное), и само сообщение, а уже эта функция до отправки сообщение, перебирает все слова в массиве с каждым словом в сообщении (я еще сделал и замену букв, пример слово сука, можно написать и как cyка (лат. y), вот функция и проверяет все возможные варианты, если найден хоть один, сообщение никуда не пойдет, а с отправителя снимается штраф в размере 0.1% от всех его "денег", а если у него денег нет, то используются минусовые значения, и пока у пользователя нет денег, его ранг "призрак" (говорить он не умеет, и его нет в списке комнаты), когда бабки появились, его ранг восстанавливается ....

Удачи!
Единственный бог, это Root!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 07.07.2003 (Пн) 10:25

с отправителя снимается штраф в размере 0.1% от всех его "денег", а если у него денег нет, то используются минусовые значения, и пока у пользователя нет денег, его ранг "призрак" (говорить он не умеет, и его нет в списке комнаты), когда бабки появились, его ранг восстанавливается ....

Круто :shock: :!:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Admiral DW
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 11.08.2003 (Пн) 16:54
Откуда: Питер

Сообщение Admiral DW » 11.08.2003 (Пн) 21:07

Если от числа отнимать 0.1%, то оно никогда не будет = 0, и уж тем более отрицательным.
NO CARRIER

Alfa
Бывалый
Бывалый
 
Сообщения: 249
Зарегистрирован: 12.01.2003 (Вс) 20:15
Откуда: Россия, Красноярск

Alfa

Сообщение Alfa » 16.08.2003 (Сб) 18:31

Господа. Мне для моей программы требуется другой интерейс. Там чтобы можно было из квадратной формы сделать ее круглой и так далее.

Messir
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 15.08.2003 (Пт) 14:29

Сообщение Messir » 16.08.2003 (Сб) 22:23

Смотри соответствующий топик!!!
<<MESS WITH THE BEST,
DIE LIKE THE REST>>

Pivusik
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 27.08.2003 (Ср) 13:25
Откуда: Новый Уренгой

Оскорбительные слова

Сообщение Pivusik » 28.08.2003 (Чт) 8:29

Работал одновремя в интернет кафе, правда интернет там появился только через пол года после его открытия :=) С появлением интернета появился и ирк, наш городской ирк, как бы мы платили толкьо за трафик инета поэтом городская локалка халява, ну и сделали просто дешовой услугой доступ в ИРК ЧАт городской, для этой цели хитрая система была, доступ в инет отдельно, ограничавался еще и трафик, а чат отдельно, естестно да бы не раслаблятся взял в свои руки и написал маппед, в последствии заточил его под ИРК и переименовал в ирк.маппед, а фишка в следующем:
1. Все кто конектились на ирк попадали обязательно в канал клуба
2. админ мог чиатть кто что и скем :=) (подло но иногда было полезно, когда твоя девушка приходитв чате поболать :=))
3. Цензура, первоначально делалось просто убирать слова... но потом пошел дальше, намного прикольнее получается елси заменять слова, "х№й" заменить на "ромашка"? :=) создается фаил каждая строка:
слова=замена
а дальше только менять :=) Тут правда есть свои ньюансы, дабы не поменять "три рубля" на "трирукартошка" :=)
4. Уже из области шпионажа, отслеживать различные слова...

Затем был просто маппед которые переконекчивал на проксу, им же вырубался доступ и ограничивался трафик, там опять же отслеживались спец слова, и писались в лог, но это уже из области нечесная игра и заполучение чужой почты :=)
©Wind


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

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 12

    TopList  
cron