TCPで非同期(WSAAsyncSelect)を使ってプログラミングをしています。
非同期において送信する場合どのように設計すればいいのかイマイチわかりません。
やりたいことは、接続要求があったらacceptしてファイルを送信するといった内容です。

ファイルの送信要求メッセージを受信
ファイルをバイナリモードでオープン
4096バイトずつ読み込んでsend()
ファイルをクローズ

ファイルを送信した後も継続して通信は行います。
sendもノンブロッキングになってるため、

while(ファイル読み込みが終わるまで){
  send()
}

だと上手くいかないのかなと思います。調べてみると非ブロッキングにおいて連続してsend()を行おうとすると
WOULDBLOCKという現象が起こって送信できない事があるとの事です。
FD_WRITEのメッセージも別に自分が送信したいタイミングで来るわけでもないのでイマイチ有効な活用方法がわかりません。
どなたかご教授願いますm(_ _)m