|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.05.2010, 10:31 | #1 |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
В отдельном потоке после ф-ции accept() ничего не выполняется!!!
Помогите, объясните, плиз, почему не работает! =(
Сетевое приложение Windows Forms с использованием winsock2, написано в Microsoft Visual Studio 2008, язык С++. Работа приложения: по нажатию на кнопку ждем всего лишь одно соединение, когда дождалиьсь, то должны стать видимыми несколько других кнопок. При этом приложение не должно зависать, т.е. используем потоки. Код: Код:
Скажите, плиз, почему не выполняется код после accept() в потоке? Или может у каго есть другие варианты как добиться того, что я хочу, потому что я уже не знаю что придумать((( Последний раз редактировалось Fissa; 23.05.2010 в 10:34. |
24.05.2010, 13:22 | #2 |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
извините - в последней строке конечно же MyThread а не oThread2 - очепятка
Выяснилось, что и сама функция accept() не срабатывает((( так что у меня НЕ РАБОТАЕТ ПОТОК. ПОМОГИТЕ! Объясните, что не так. |
24.05.2010, 19:09 | #3 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Код:
Последний раз редактировалось BOBAH13; 24.05.2010 в 19:13. |
25.05.2010, 09:48 | #4 | |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
Цитата:
Причем я реализовывала поток и с помощью BackgroundWorker - там абсолютно тоже самое: поток запускается и тут завершается, соотвественно соединение не успевает установится, но тут еще и следующее - при попытке присоединится к программе она зависает. Вопрос теперь в следующем - КАК ВЫНЕСТИ ACCEPT() В ОТДЕЛЬНЫЙ ПОТОК, ЧТОБ ОНА ЖДАЛА ТАКИ СОЕДИНЕНИЯ? Последний раз редактировалось Fissa; 25.05.2010 в 09:53. |
|
25.05.2010, 14:01 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а разве WSASturtup не надо?
(для каждого потока) у вас в основном потоке оно работает? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
25.05.2010, 15:37 | #6 | |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
Цитата:
WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); прост забыла их дописать здесь на форуме. Включила щас их и в создаваемый поток, в результате то же самое - accept() все равно не хочет ожидать подключения((( |
|
25.05.2010, 16:22 | #7 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
я бы посоветовал просто писать на с#, зачем вообще писать на с++ и использовать NET не понятно...
с++ хорош скоростью и независимостью от всяких фреймворков а net удобен, код пишется легко и понятно, но он чуть медленней и требует сам фреймворк совместим их и получается что пишется медленно, не удобно, но при этом скоростью не блещет и требует фреймворк, т.е убиты преимущества обоих ну и конечно глюки которые не может исправить ни программист С#, ни С++ но дело ваше конечно, просто сказал что думаю ) |
25.05.2010, 16:23 | #8 | |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
Пепел Феникса, спасибо Вам, что навели меня на мысль!
Я перенесла весь код кнопки в создаваемый поток, т.е. инициализацию сокетов и т.д., оставила там лишь запуск потока. В итоге, все получилось! send и recv тоже отлично работают в основном потоке, не смотря на всю инициализацию сокетов и т.д. во втором потоке. ПРОБЛЕМА РЕШЕНА =) Тема закрыта. P.S. Кстати я вместо тредов использовала BackgroundWorker, т.к. он намного проще, удобнее и полностью для моей проги подходит)) А прога конечно же не та, что я написала, у меня игра сетевая с немаленьким кодом (около 1000 строк собсвенного кода), не удачно работала лишь сетевая часть, т.к. это первое сетевое приложение. Цитата:
Последний раз редактировалось Fissa; 25.05.2010 в 16:43. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод сообщения в отдельном потоке и т.д. | Casper-SC | Общие вопросы .NET | 7 | 18.05.2010 03:32 |
всплывающее окно(в отдельном потоке) | Virus191288 | Компоненты Delphi | 8 | 21.01.2010 13:41 |
Загрузка данных в отдельном потоке | Dj_smart | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 8 | 18.01.2010 23:29 |
Закачка файла происходит в отдельном потоке. | Kyran29 | Работа с сетью в Delphi | 1 | 28.11.2009 01:19 |
Запрос к БД в отдельном потоке (Thread) | tyrell lab | БД в Delphi | 1 | 14.06.2007 08:42 |