ConnectEx,AcceptEx
MSDNからの引用
When the ConnectEx function successfully completes, socket handle s can be passed to only the following functions: * ReadFile * WriteFile * send or WSASend * recv or WSARecv * TransmitFile * closesocket
あれれ・・・?shutdownは?
SD_SENDしたいんだけど・・どうなってんのこれ
AcceptExもshutdown使えないようです。
試しにやってみたらWSAENOTCONN(10057)
つ、つながってないって??・・え、何?このデータ
いっぱいデータ送受信できてるんだけどおお><
ConnectもAcceptも完了ポートしたかったんだけどなぁ・・・
今回は素直にWSAEventSelectかなぁ・・・
追記
Acceptするソケットはshutdownいらなかったね。ってことは完了ポートできそー
ちょっとがっかりだったけど、希望が見えてきたヽ(´ー`)ノ
さらに追記
ちょっと調べてみるとAccept完了後
setsockopt(server_socket,SOL_SOCKET,SO_UPDATE_ACCEPT_CONTEXT,(char*)&listen_socket,sizeof(listen_socket))==SOCKET_ERROR
って感じで新しいサーバーソケットにListen用ソケットのオプションをコピーしてやるとshutdown可能でした。
Σ(゚Д゚;≡;゚д℃(゚д゚)エ?キタノ?
ちなみにConnectExのほうはまだやってないのでわかりませんがSO_UPDATE_CONNECT_CONTEXTもあるみたいなので
できそーじゃないかなぁ
どのソケットからこぴるか謎ですが・・・
↓
ConnectExもできました。
err = setsockopt( s, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, NULL, 0 );
こんな風にやるみたいです