Как правильно использовать WSAAsyncSelect? - PullRequest
0 голосов
/ 16 июля 2009

Я задал здесь массу вопросов о WSAAsyncSelect и NET. Несколько месяцев назад я даже потратил 500 повторений на награду и сам ответил на нее (я сделал обертку). В конце концов, я привык к winsock в основа.

Сегодня я спрашиваю о неуправляемых языках, плохой момент в том, что я скучаю по каркасному способу работы с сокетами. Я пишу свой проект на Delphi, но я понимаю языки, подобные C, так что это не будет проблема, и я даже не спрашиваю никакого кода. Я люблю естественные вещи, поэтому, пожалуйста, не предлагайте никаких компонентов, только чистый код. :)

Люди говорят, что хорошо создать еще одну скрытую форму и установить там цикл сообщений для правильного использования AsyncSelect.

Ну, мой вопрос прост: я поместил все функции winsock, которые я написал, чтобы облегчить мою жизнь, внутри этой скрытой формы, а также я установил WSaAsyncSelect с его дескриптором, цикл сообщений тоже есть, но я написал дочерний классы (много классов, огромный код), родительский класс - это та скрытая форма.

WSAAsyncSelect поточно-ориентированный? Это замедлит вещи (что я сделал с классами)?

Нужно ли создавать потоки вне цикла сообщений?

Будем весьма благодарны за любые другие советы по правильному использованию AsyncSelect.

Редактировать: , чтобы избежать недоразумений, я прямо спрашиваю об AsyncSelect (). Проект, над которым я работаю, требует 2 сервера и 1 клиента, который, я думаю, мог бы быть хорошо обработан этим вызовом.

1 Ответ

1 голос
/ 16 июля 2009

Люди говорят, что хорошо создать другое скрытая форма и установить цикл сообщений там правильно использовать AsyncSelect.

Вы пишете код для WinSock напрямую или используете компоненты VCL TClientSocket и TServerSocket? Если последние, то они уже обрабатывают WSAAsyncSelect () для вас внутренне (да, они используют свое собственное скрытое окно).

WSAAsyncSelect поточно-ориентированный?

Да.

Это замедлит вещи (что я сделано с классами)?

Вы на самом деле не объяснили, что делают классы.

Должен ли я создавать темы вне цикл сообщений?

Нет, но при желании сокеты могут использоваться несколькими потоками. Однако сообщения сокетов будут обрабатываться только тем потоком, которому принадлежит окно, которое было передано WSAAsyncSelect ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...