|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
||||||||||||||||
Winsock2 в классе12.01.2016, 08:32. Показов 2333. Ответов 26
Метки нет (Все метки)
Решил сделать класс для дальнейшего применения в разных программах вот что получилось:
Файл Konnekt.срр
Ошибка C2276 &: недопустимая операция с выражением привязанной функции-члена Consoleserver_1.0 C:\Users\Administrator\Desktop\Проекты\C onsoleserver_1.0\Consoleserver_1.0\Konne kt.cpp 76 Вроде поток оргонизовываю правельно... в чем проблема?
0
|
||||||||||||||||
| 12.01.2016, 08:32 | |
|
Ответы с готовыми решениями:
26
winsock2.h winsock2 Уроки по WinSock2 C++ |
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
| 12.01.2016, 11:26 | |
|
1
|
|
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|
| 12.01.2016, 13:16 [ТС] | |
|
Спасибо! а то я голову чу
ть не сломал....Добавлено через 1 час 14 минут Ну а как в общем я в правильном направлении иду? или намудрил лишнего. Хочу такой класс который можно будет легко подключать к проектам и который будет осуществлять многомопочный коннект, принимать и предоставленные ему данные.
0
|
|
|
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305
|
|
| 12.01.2016, 14:40 | |
|
Все данные в классе лучше всего закрыть в private. Тем более, когда приложение многопоточно.
Нужно обеспечить асинхронный доступ к данным, почитай про mutex Крайне не рекомендуется использовать goto У тебя работа идет лишь с последним сокетом. За время создания потока может появиться еще одно подключение, и тогда два потока будут работать с одним сокетом, а при синхронной работе это вообще не хорошо.
0
|
|
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
||||||
| 12.01.2016, 15:01 [ТС] | ||||||
0
|
||||||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||
| 13.01.2016, 11:25 | |||
|
Добавлено через 1 минуту
0
|
|||
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|||||||
| 13.01.2016, 12:00 [ТС] | |||||||
|
Если сделаем std::thread::join() то вроде тогда будем ждать завершение потока в этом случае многопоточность не получится. а отсоединяю как раз для того чтобы этот поток продолжил работу и перешел к ожиданию подключения второго клиента....
0
|
|||||||
|
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305
|
|
| 13.01.2016, 12:30 | |
|
Во время создания потока ClientSocket в классе может изменится (новое подкл.), тогда два потока будут обрабатывать один сокет. Такого допускать нельзя, потокам нужно обеспечить асинхронный доступ к необходимому блоку памяти, в этом вам поможет mutex. Вообще почитайте про многопоточность. Я конечно далеко не спец, но мне кажется потоки в одном классе лучше не использовать... А если и использовать, то сделать их независимыми от переменных внутри класса (напр. ClientSocket)
0
|
|
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
||
| 13.01.2016, 12:35 [ТС] | ||
|
Да я тоже уже подумал, что если создается 2 потока то прием ведется в одну переменную а это не правильно... нужно объявлять буфер приема отправки уже в потоке...
Добавлено через 1 минуту
0
|
||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||
| 13.01.2016, 12:42 | |||
|
Добавлено через 1 минуту
0
|
|||
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|
| 13.01.2016, 12:42 [ТС] | |
|
0
|
|
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 13.01.2016, 12:46 | ||
|
вообще варинтов много
1) пул потоков(читать на просторах интернета, объяснять долго но в 2х словах: есть фиксированное кол-во потоков по кол-ву ядер например и им раздаются задания) 2) каждое подключение - новый поток(тут проблема много подключившихся, много потоков а это ограниченный ресурс) 3) асинхронный ввод\вывод и все делать в 1ом потоке(порядка 100 клиентов без проблем отработают) Добавлено через 2 минуты
0
|
||
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|
| 13.01.2016, 13:04 [ТС] | |
|
А еще сделать новый класс где будет описан этот поток? и в новый поток отдавать уже этот класс? или это уже слишком ?
0
|
|
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 13.01.2016, 13:32 | ||
|
Добавлено через 2 минуты Вы бы все же сказали поконкретнее какие функциональные требования, а то все "вилами на воде"
0
|
||
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|
| 13.01.2016, 14:02 [ТС] | |
|
Требования, класс который можно будет подключать к проектам и который будет осуществлять многопоточный прием и отправку сообщений клиентам. Для создания многопоточного сервера например...
0
|
|
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
| 13.01.2016, 14:58 | |
|
но существуют же готовые решения, например PoCo или Вы желаете сами написать
0
|
|
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|
| 13.01.2016, 17:26 [ТС] | |
|
Интересно самому.. тренировка опять же и появляется понимание
0
|
|
|
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
|
||||||
| 14.01.2016, 00:41 | ||||||
|
про код промолчу. резко отрицательно. лучше начните с коцепции. вот это
в TCP НЕТ ПАКЕТОВ на пользовательском уровне (круглый) ЗЫ Типичная ошибка большинства...
0
|
||||||
|
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
|
|
| 14.01.2016, 06:31 [ТС] | |
|
Вы обратили только на название? это я образно назвал только потому, что клиент (блок телематики) шлет как бы пакеты информации это только для себя...
![]() Ну а что на счет самого кода всегда рад выслушать замечания... на счет goto я тоже в курсях это сделал на время только для проб и отладки... хотя а почему бы и нет именно здесь? и оно ни разу не срабатывало ![]() Ну вот в принципе я добился чего хотел, может подключится одновременно несколько клиентов и сервер пока отправляет в ответ то что пришло от клиента... Вопрос вот в чем: например у нас подключилось 5 клиентов, открылось 5 потоков а как мне выбрать именно тот поток для отправки данных например 3 клиенту? т.е. задача отправлять данные в любое время необходимому мне клиенту....
0
|
|
|
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
|
|
| 14.01.2016, 08:33 | |
|
"в корне не верно" это от слова совсем.
это как если-бы вам говорили, что машина хэчтбак, а Вы бы угаваривали поднять маленькую плиту весом не 2 тонны а всего 1,5 тонны ![]() протокол TCP потоковый. нет там в природа пакетов. посылайте хоть по 10, 20 или по 1500 - ну нет там пакетов физически...Пример: вам пошлют 50+50+50+50+50 Вы можете принять 50+10+30+150+10 т.е. квантованости НИКТО не обещал! (круглый)
0
|
|
| 14.01.2016, 08:33 | |
|
Помогаю со студенческими работами здесь
20
winsock2 и dns Книги по winsock2
Скачать изображение winsock2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs
. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|