Я знаю, что для одновременного вызова WSASend()
мне нужно предоставить для каждого вызова уникальные экземпляры WSAOVERLAPPED
и WSABUF
. Но это означает, что я должен отслеживать эти экземпляры для каждого вызова, что все усложнит.
Я думаю, было бы лучше, если бы я создал поток, который будет выполнять только WSASend()
вызовов не одновременно, а последовательно. Этот поток будет ждать в очереди, которая будет содержать WSASend()
запросов (каждый запрос будет содержать дескриптор сокета и строку, которую я хочу отправить). Когда я в конце концов вызову WSASend()
, я заблокирую поток до тех пор, пока не получу сигнал пробуждения от потока, ожидающего на порте завершения, сообщающего мне, что WSASend()
завершен, а затем я перейду к получению следующего запроса.
Если это хорошая идея, то как мне реализовать очередь и как сделать для нее блокирующий вызов выборки (вместо использования опроса)?
WSASend()
будет отправлять сообщение определенной длины, не связанное друг с другом. - person John   schedule 05.03.2015WSAOVERLAPPED
иWSABUF
не такая уж сложная задача по сравнению с созданием потока отправителя! - person John   schedule 05.03.2015