![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| bass |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Тупик .... Компилятор Builder 6.0 Win Xp пишу маленький сервачек.... На серверсокете........
При создании формы.....
Такой код не работает..... Выскакивают мессадж боксы..... Поидеи потоки по одному должны зайти..... Но счетчики меняються в CritsectQweryBuffer... Посмотрел отладчиком может я заработался... Заранее спасибо. Это сообщение отредактировал(а) GremlinProg - 13.6.2012, 07:01 |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Должно работать, давайте весь код
|
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Кода несколько страниц(20), сейчас просто написал маленький код и такая же ошибка........
Еще прикрепляю проект... Конекчусь телнетом выскакивает два мессадж бокса..... Два раза коннекчусь..... С уважением .. Заранее спасибо... Присоединённый файл ( Кол-во скачиваний: 3 )
CRITICAL_SECTION.rar 352,62 Kb |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Рискну предположить, что ServerSocket1Accept синхронизируется с главным потоком, а потому EnterCriticalSection будет выполняться много раз.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Что то я вас не понял...... В критическую секцию должен заходить один поток........ Мессадж бокса два!!!!!!! Значит туда попали два потока........ При нормальной работе другие ожидают.......
|
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Все просто код работает правильно
После MessageBox ты покидаешь критическую секцию так как MessageBox(NULL, ....); не блокирует поток. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Пишу вот так....
Пока не нажму первый мессадж второй не выскакиват, значит блокирует.......
Это сообщение отредактировал(а) GremlinProg - 13.6.2012, 07:04 |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
И правда странная хрень
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
У меня есть подозрение, что InitializeCriticalSection(&CritsectQweryBuffer); выполняется неоднократно...
Нельзя ли это вывести за пределы TForm1? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Может что то не то в настройках проекта, но ставил релиз..... Такая же байда.....
ServerSocket1 интересно как работает????? Пробовал вставить в форм шоу инициализацию..... И как это синхронизировать.???????
Попробовал так вот, но какае то странная ситуация ..... Если по одному заходят то все ок а если один весит на мессадж боксе, и заходит другой то виснет вся программа(и загораються песочные часы)...... Такое ощущение что связано это с оконной процедурой......... Заранее спасибо, с уважением. Добавлено @ 13:47
Один раз выполняеться, посмотрел отладчиком...... Добавлено @ 13:56
Скорее всего так и получаеться синхронизация походу есть..... Но прицем тут критическая секция?????? Взрыв мозга....... Скорее еще прикол в свойствах ServerSocket1.......... Может тему в сети перенести ???? Может там что посоветуют???? Это сообщение отредактировал(а) bass - 11.6.2012, 13:59 |
||||||
|
|||||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
В смысле при втором подключении будет снова InitializeCriticalSection. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Нет ставлю брейк, запускаю приложение, останавливаеться...... Далее произвожу коннекты не разу на брайке не останавливаеться..... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Так не корректно, нужно пользоваться Interlocked-функциями... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Это просто чтоб понять что происходит....... А происходит следующие приложение виснет, заначит процедура ServerSocket1Accept синхронизирована с главным потоком, как предположил Alexeis........ А вот куда ковырять пока не соображу........ |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
вот ответ
если проще, то если критическая секция была уже вызвана в потоке, то при повторном вхождении в нее в этом же потоке не происходит блокировки Это сообщение отредактировал(а) Dem_max - 11.6.2012, 14:21 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Поток один и тот же............. Dem_max 200 %............... Получаеться ServerSocket1 не создает поток на новое подключение......... И как выкручиваться в данной ситуации...????? И интересно сколько тогда может выдержать подключений ServerSocket1 ????????? |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Как вариант не парится
Так как ServerSocket1Accept(); работает в одном потоке, не делай долгих задержек в этой функции. Т. е. если надо добавляй новый сокет в список и выходи из функции, только же опять не забывай добавлять через критические секции, так как в где то в другом потоке список может использоваться. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Я бы не парился........ Но в один момент нужно создать буффер и отправить клиенту, так в момент создания буффера идут обращения к первой и второй форме............ И тут начала вылетела ошибка доступа к лейблу.... И так я и доковырялся что критическая секция не работает......
|
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Доступ к лейблу и визуальным компонентам должен быть только из главного потока.
http://rxlib.ru/WinLesson/bles2_1.htm -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Полностью согласен с тобой(там операции были несложные, поэтому забил, знаю сделал не по програмерски... Ну...), но как быть допустим в этой ситуации........... Поток то у нас один теперь как выяснилось.......
И в одном моменте сбиваеться последовательность ситуаций и вылетает ошибка....... Для этого и продумывал критическую секцию..... Век живи век учись..... С уважением..... Это сообщение отредактировал(а) bass - 11.6.2012, 15:34 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Я имел ввиду, что обработчик вызывается в главном потоке. Т.е. поток сокета синхронизируется с главным и вызывает обработчик в главном потоке. Но тут я тоже протупил, потому как если обработчик вызывается в главном, то пока он не закончил свое выполнение не сможет синхронизироваться второй обработчик, ведь один поток не может исполнять 2 действия одновременно. Добавлено через 6 минут и 58 секунд Хотя не, теоретически может, если использует механизм асинхронных вызовов Windows. Представим себе ситуацию. 1) 1й поток получил accept и записался в очередь к главному потоку на синхронизацию 2) Вызвался обрабочик в главном потоке и вызвался месажбокс 3) Месажбокс заблокировался на обработке сообщений 4) 2й поток получился accept и записался в очередь к главному потоку на синхронизацию 5) Поскольку месажбокс занимается обработкой сообщений, то это разрешает вызов 2го обработчика от 2го потока. 6) Вызывается второй обработчик также в главном потоке, и для него критическая секция не является блокировкой поскольку вызывающий поток 1. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Все понял................
Как и предположил что связанно с оконной процедурой. Вернее с ее свойствами приема потока сообщений оказалось. А как быть в такой ситуации..... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Отключить синхронизацию с главным потоком ServerType = stNonBlocking -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
В его свойствах и так стоит ServerType = stNonBlocking ...................
Так и стоит..... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
bass, а если поставить блокирующий? Возможно он все неблокирующий обрабатывает в главном потоке. Кстати! Он же может события accept ставить на обработку окном главного потока! Это и есть наиболее вероятный способ разблокировки сокета. Значит нужно переключить в блокирующий.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Все заработался пришла в голову мысль поставить счетчик потоков зашедших если больше одного то выскакивает мессадж бокс....... Когда поток уходит смотрит на наличие мессадж боксов и тыкает мышкой......))))))))))))))))))))))))))
А серьезно..... Щас ставим блокирующий........ Куча клиенов выполняют опперации и тут мы попадаем в эту функцю и блокируемся секунд на 5 все....... А так все работаем кому в друг понядобилась эта функция встаем в очередь....... Там еще есть запрос пользователя..... И тогда сервер зависнет............ Но всеравно попробую......... Неа не получилось...... Form1->Memo1->Lines->Add(IntToStr( GetCurrentThreadId())); EnterCriticalSection(&CritsectQweryBuffer); MessageBox(NULL,"", "", MB_OK ); LeaveCriticalSection(&CritsectQweryBuffer); Конектиться клиент выскакивает мессадж бокс........ Конектиться другой и в мемо не отображаеться номер потока.... Закрываю мессадж появлеться .... Значит блокиреться все работа.... Хоть коннект и проходит...... Это сообщение отредактировал(а) bass - 11.6.2012, 18:25 |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Почитай тут
http://forum.vingrad.ru/topic-60076.html приглянись к семафорам, они вроде как блокируют вход. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Замените CRITICALSECTION на Mutex'ы - они будут блокироваться даже если их позовут в одном потоке
|
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Иногда да такого маленького ответа приходиться столько докапываться......
Ступил и пошел разбираться почему не срабатывает ......... Спасибки всем...... Если мутексы блокируються то тогда вопрос решен..... Это сообщение отредактировал(а) bass - 11.6.2012, 19:38 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Это еще почему? Насколько я знаю мьютексы под виндой ведут себя точно также как и критические секции. Чтобы добиться полного исключения я использовал эвенты. А у мьютексов фича такая. Раз 1 поток то безопасно вызывать и они не блокируют повторный вход. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Кажеться так и получилось, пока руки не добираються до этого кода но быстро накалякал Mutex'ы кажеться такая же байда....
Щас посмотрю...... |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Да, действительно -
Тогда действительно только семафор со счетчиком 1 ( http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx ) |
||||
|
|||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Так ребят я вообще не чего не пойму........
Когда запускаю потоки с кнопки два не одного месадж бокса не высвечиваеться а когда запускаю сервер через WaitForSingleObject(mut,INFINITE); проскакивает...... Бред......... |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Я же тебе сказал посмотри на семафоры.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Спасибо но ответа было два и я как всегда выбрал неверный..... Ну это то что осталось доделать в сервачке...... И как всегда закон подлости......
|
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Вот это номер................. Заходит один поток вешаеться на мессадж боксе, заходит другой и виснет весь сервер................. Вот и синхронизировал................)))))))))))))) Говорил тыкать мышкой в месадж боксы эффективнее....)))))))))))
Так а че делать то ???????................. Не ожидал такого прикола, хотя выше уже такой тест приводился ......., я не обратил внимания...... Семафоры действительно заработали....... Если честно я думал что ServerSocket создает поток для каждого подключения......... А оказалось............ |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Короче наверно придеться так выкручиваться .... Если комуто нужна эта функция он запускает поток, выполняються операции в порядке очереди и продолжаеться работа........ Выход вижу такой, корректно ли это будет.....?????
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
MessageBox(NULL,"", "", MB_OK | MB_TASKMODAL );
Мессадж боксы использовались в роли тестов....................................................... А там в функции в реальном коде много действий с формой........... Вернее считывание ее параметров и создан ие буфера для передачи............. И если туда залетает два потока то начинаеться белеберда..... |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Откуда там взяться 2м потокам, если все вызовы ServerSocket1Accept сериализуются в один и тот же поток (сами же экспериментально на эти грабли только что наступили)? Если вы в ServerSocket1Accept не будете показывать модальные окна и вызывать MessageBox'ы, то одновременный вызов нескольких экземпляров ServerSocket1Accept в принципе невозможен |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Оставляй как было в самом первом коде и не парься -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Убрал критические секции ...... Поставил MB_TASKMODAL..... И вообще не чего не изминилось..... Скорее всего в этом дело MB_OK....... Поидеи модальная форма должна появиться и управление обратно отдаться так ведь???? Сделаю так запущу еще один поток, ему какойто сокет запрос на создание буфера, поток закончил передал буфер сокету........ Если два сокета сделали запрос, в порятке очереди......... Думаю так заработает....... И все ок будет................ Оставляй как было в самом первом коде и не парься..... Вылетают ошибки....... |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
не критические секции нужны, вдруг есть другие потоки которые будут пользоваться ресурсами того что находится в критической секции данного потока.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Точно? Это надо у ТС уточнить. Если да, тогда можно оставить, но в любом случае вызовы самого ServerSocket1Accept никогда не могут наложиться друг на друга (если только вы их сами не наложите) |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
точно -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Да действительно вы правы, сейчас только протестировал....... Поставил слип на 10 минут....... И этот слиип парализовал работу серввера....... Сделал отдельный поток который занимаеться обработкой долгих операций и выполняющий запрос пользователя............ Все заработало УРА!!!!!!! Всем огромное человеческое спасибо........ Ставлю на тесты...... А вот интересно сколько выдержит подключний ServerSocket...... Сейчас больше 10 врятли будет..... Но на будущее...???? Ну если его на сервер поставить естественно........ |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Похоже сколько угодно. Видимо он не создает новых потоков на каждое подключение, а диспечирезует все в один поток (но могу и ошибаться - сорцы не смотрел). При большом количестве подключений должно все начать тормозить, но умереть не должно |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Но могу сказать если сделать запрос пользователя, и повесить сервер и продолжать подключения виснет вся система.....(((((
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Ой, что то вы суровое напрограмировали |
|||
|
||||
| bass |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Ну не совсем..... Виснет рабочий стол и прога..... Можно запустить таск манеджер и убить процес...... Но это в тесте с месадж боксами..... ХР.....))))))))) |
||||
|
|||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
возможно использует главный поток всей программы.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| bass |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Грабли грабли и еще раз грабли............... Вот глупые люди всегда наступают на одни и теже грабли.... Но умные не лучше всегда наступат на новые.......
Незнаю к какому типу себя отнести, но на очередные наступил......
Или 0.0.0.0 выдает либо 30.4.121.0 или что то подобное.......... Хотя коннект провожу с 127.0.0.1 ..................
Вот такая вещь работает..... Остаеться одно..... Socket->Handle..... либо там не стоит 4 ех байтовое выравнивание либо он не привязан к настояшему хендлу сокета....... И еще почитав про ServerSocket ....... Оказалось что после коннекта Index может меняться...... И такой код будет глючить........... Индекс я назначаю при коннекте, вернее получаю....... А вся привязка клиента идет по его хендлу.....
Код в топку............ Где то валялся клиент написанный на винапи переделаю под сервер конект на бинд надо сменить и все....... Не когда в жизни больше не возму ServerSocket.............. Это сообщение отредактировал(а) feodorv - 16.6.2012, 17:15 |
||||||
|
|||||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |