3

I / Oが重複しているTCP接続要求を開始し、Windowsで接続が完了する前にキャンセルすることはできますか?少なくともWindowsXPSP2をサポートする必要があります。

4

2 に答える 2

6

ConnectEx重複した接続の試行を許可します。

これをキャンセルするには、あたかもそれがであるかCancelIoのように渡すことを使用する必要があります(実際にはそうです)。ただし、これは、を呼び出したのと同じスレッドから実行する必要があります。スレッドの特異性を実現できるように管理するのは簡単ではありません。SOCKETHANDLEConnectEx

XP / 2003(つまり、Vista / 2008/8 / 2008R2)CancelIoEx以降は、別のスレッドから使​​用できます(OVERLAPPEDインスタンスはIO操作を完全に識別するために使用されます)。

于 2011-10-10T14:57:28.790 に答える
0

ここから:

オーバーラップ

このディレクトリには、オーバーラップしたI/Oを使用するサンプルサーバープログラムが含まれています。サンプルプログラムは、AcceptEx関数とオーバーラップI / Oを使用して、クライアントからの複数の非同期接続要求を効果的に処理します。サーバーはAcceptEx関数を使用して、シングルスレッドのWin32アプリケーションでさまざまなクライアント接続を多重化します。オーバーラップしたI/Oを使用すると、スケーラビリティが向上します。

于 2011-10-10T14:54:09.030 に答える