Вопросы по теме 'iocp'

Проблема с многопоточным клиентом IOCP
Я пишу многопоточный клиент, который использует порт завершения ввода-вывода. Я создаю и подключаю сокет с установленным атрибутом WSA_FLAG_OVERLAPPED. if ((m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) { throw...
1169 просмотров
schedule 12.10.2021

Многопоточный сервер IOCP и класс с подсчетом ссылок
Я работаю на сервере IOCP (перекрывающийся ввод-вывод, 4 потока, CreateIoCompletionPort, GetQueuedCompletionStatus, WSASend и т. Д.). И моя цель - отправить единый буфер с подсчетом ссылок для всех подключенных сокетов. (Я последовал предложению Лена...
271 просмотров
schedule 27.03.2022

Нужно ли устанавливать hEvent в структуре OVERLAPPED при выполнении портов завершения ввода-вывода?
Я использую порты завершения ввода-вывода в Windows для связи через последовательный порт (потенциально у нас будет очень много использования последовательного порта). Я сделал обычное дело, создав IOCP, раскрутив потоки ввода/вывода и связав мой...
1004 просмотров

можно ли вообще считать ошибкой печально известную ошибку `ERROR_NETNAME_DELETED'?
Я пишу TCP-сервер в Windows NT, используя порты завершения для использования асинхронного ввода-вывода. У меня есть класс TcpSocket, класс TcpServer и некоторые (виртуальные функции) обратные вызовы для вызова после завершения операции ввода-вывода,...
5557 просмотров
schedule 10.05.2022

Шаблон кодирования для зависимого перекрывающегося ввода-вывода в окнах
Я программист Linux и недавно участвовал в переносе клиента на основе epoll с двумя файловыми дескрипторами, написанными на c, в Windows. Как вы знаете, в Linux используется epoll или select (я знаю, что Windows поддерживает select, но это...
400 просмотров
schedule 03.06.2022

Каков наилучший способ параллельного эхо-тестирования множества сетевых устройств?
Я опрашиваю много устройств в сети (более 300) итеративным пингом. Программа опрашивает устройства последовательно, поэтому медленно. Я хотел бы увеличить скорость опроса. Есть несколько способов сделать это в Delphi 7: Каждое устройство...
9802 просмотров

Проблема со стресс-тестом сервера Winsock IOCP
У меня есть сервер winsock IOCP, написанный на С++ с использованием соединений TCP IP. Я протестировал этот сервер локально, используя петлевой адрес с симулятором клиента. Мне удалось получить более 60 000 клиентов без труда. Проблема, с которой я...
1093 просмотров
schedule 15.06.2022

IOCP: уведомления без копирования байтов
У меня есть приложение IOCP, которое хранит буфер размером 64 КБ для каждого контекста сокета. Он использует много оперативной памяти, обрабатывая тысячи сокетов. Вместо этого я хочу переключиться на модель, в которой у меня есть буфер размером 64...
1039 просмотров
schedule 26.06.2022

Ограничение Windows на количество одновременно открытых сокетов / соединений на машине
Допустим, у меня есть Windows 7 с одним реальным сетевым интерфейсом и несколькими интерфейсами обратной связи. У меня есть сервер с поддержкой IOCP, который принимает соединения от клиентов. Я пытаюсь имитировать как можно больше реальных...
16495 просмотров
schedule 03.07.2022

Вопрос интерпретации документации IOCP - неоднозначность владения буфером
Поскольку я не являюсь носителем английского языка, мне может что-то не хватать, так что, возможно, кто-то здесь знает лучше меня. Взято из документации WSASend в MSDN : lpBuffers [в] Указатель на массив структур WSABUF. Каждая...
883 просмотров
schedule 09.07.2022

Закрытие сокетов, которые не завершили AcceptEx - если и как?
Я понимаю, что если я выполню вызов AcceptEx через указатель функции, как это рекомендуется в документации, то, если я укажу размер буфера получателя, вызов не завершится, пока не будут отправлены некоторые данные: if (!lpfnAcceptEx(sockListen,...
500 просмотров
schedule 27.07.2022

Как предотвратить блокировку порта завершения ввода-вывода при наличии пакетов завершения?
У меня есть серверное приложение, использующее Механизм порта завершения ввода-вывода (IOCP) корпорации Майкрософт для управления асинхронной связью сетевых сокетов. В целом, этот подход IOCP очень хорошо зарекомендовал себя в моей среде. Однако я...
2067 просмотров
schedule 28.08.2022

Использование IOCP с несколькими слушателями
Как настроить сокеты IOCP для нескольких прослушивателей (на разных портах)? Каждый пример, который я нахожу в Интернете, представляет собой пример с одним сервером и несколькими клиентами, и я не понимаю, должен ли я создавать несколько IOCP или...
930 просмотров
schedule 04.10.2022

Путаница с ключом порта завершения ввода-вывода
Я пишу сервер на основе порта завершения ввода-вывода ( исходный код здесь ) с помощью Windows DLL API в Python с использованием модуля ctypes. Но это довольно прямое использование API, и этот вопрос адресован тем, кто знаком с IOCP, а не с Python....
2798 просмотров
schedule 30.04.2023

Преимущества и недостатки порта завершения ввода-вывода
Почему многие считают порт завершения ввода-вывода быстрой и удобной моделью? Каковы преимущества и недостатки порта завершения ввода-вывода? Я хочу знать некоторые моменты, которые делают IOCP быстрее, чем другие модели. Если вы можете...
27728 просмотров

Как получить реальный IP-адрес и порт клиента с помощью IOCP?
Мне нужно взять ip-адрес и порт клиентов на сервере. Сервер написан на C++ с использованием IOCP, поэтому я не принимаю клиентов, я создаю новый сокет и затем принимаю (AcceptEx) клиента на этот готовый сокет. И из-за этого структура sockaddr_in...
836 просмотров
schedule 15.07.2023

Могу ли я использовать std::shared_ptr для переноса данных ввода-вывода в IOCP?
Я работаю над клиентским приложением, использующим IOCP. Мой класс данных ввода-вывода получен из WSAOVERLAPPED: class IoRequest : public WSAOVERLAPPED { ... }; И при выполнении асинхронных операций ввода-вывода я использую это так: {...
263 просмотров
schedule 15.06.2023

Неудачный DisconnectEx/AcceptEx по-прежнему планирует перекрывающееся событие IOCP.
Виндовс 8, х64. Использование перекрывающихся сокетов Windows Api с IOCP. Заметил неожиданное поведение с сокетами: например, вызов DisconnectEx возвращает ошибку WSAENOTCONN, но позже я получаю событие в GetQueuedCompletionStatusEx именно для...
642 просмотров
schedule 28.02.2023

Порты завершения ввода-вывода и управление OVERLAPPED
Как win32 управляет экземплярами структуры OVERLAPPED в контексте двух функций: GetQueuedCompletionStatus PostQueuedCompletionStatus Когда я вызываю GetQueuedCompletionStatus, освобождает ли win32 экземпляр структуры OVERLAPPED или я...
2901 просмотров
schedule 21.04.2023

Порты завершения ввода-вывода и сокет WSARecv()
Я пытаюсь понять, как IOCP работает с сокетами. Мне нужно понять, так ли они работают: Я создаю порт завершения, который представляет собой не что иное, как очередь, которая будет получать уведомления, когда какая-то операция завершится, а затем...
1246 просмотров
schedule 23.10.2022