質問:
以下の手順でTCPサーバとしてソケット接続したとき、con_socのコールバック関数でエラーコードE_CLS(-52)が返されてしまいます。
原因として何が考えられるでしょうか?
手順
1)cre_soc()でTCPサーバとしてソケットを生成
2)cfg_soc()でノンブロッキングモード、コールバック関数を設定
3)con_soc()を呼出 ⇒ 戻り値はE_WBLK(-57)
4)コールバック関数でE_CLS(-52)が返される。
回答:
サーバとしてノンブロッキングモードでの接続でcon_soc()のコールバック関数にE_CLSが返されるケースとしては、
クライアントからの接続受付(SYN受信)後、接続確立前に
①アプリケーションからcls_soc()呼出しによりソケット解放した場合
②同一ポートからRSTやSYNを受信してソケットを解放した場合
が考えられます。
検索用
[ノンブロッキング][con_soc][コールバック関数][E_CLS][TCP][ソケット][サーバ]