con_soc()のコールバック関数にE_CLS(-52)が返される

弊社TCP/IPプロトコルスタック「μNet3」に関するご質問
返信する
アバター
eForce技術担当
記事: 178
登録日時: 2014年4月24日(木) 14:18

con_soc()のコールバック関数にE_CLS(-52)が返される

投稿記事 by eForce技術担当 » 2019年3月05日(火) 17:07

質問:
以下の手順で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][ソケット][サーバ]

返信する