ページ 11

μNet3 TCPソケットのTCPステータスを確認したい

Posted: 2017年11月30日(木) 16:41
by eForce技術担当
本トピックで掲載されている参照オプションは、μNet3 ver3.13以降でサポートされています。

対象:
μNet3/Compact、μNet3/Standard

質問:
TCPソケットのTCPステータスを確認する方法はありますか。

回答:
以下の処理にて確認する事が出来ます。

コード: 全て選択

#include "net_hdr.h"

UB sts;
ref_soc(sid, SOC_TCP_STATE, (VP)&sts)
※sid = ソケットID
変数stsは以下の値のいずれかが設定されます。

コード: 全て選択

#define TCP_UNUSED          0x00    /* 未使用状態 */
#define TCP_CLOSED          0x01    /* TCP接続無しの状態 */
#define TCP_LISTEN          0x02    /* TCPサーバとしてSYN要求を待っている状態 */
#define TCP_SYN_SENT        0x03    /* TCPクライアントとして、SYN要求を送ってTCPサーバからの応答を待っている状態 */
#define TCP_SYN_RECEIVED    0x04    /* TCPサーバとしてSYN要求を受信し、SYN/ACKを送信してTCPクライアントからのACKを待っている状態 */
#define TCP_ESTABLISHED     0x05    /* TCPハンドシェークが成立し、TCP接続済の状態 */
#define TCP_FIN_WAIT1       0x06    /* ESTABLISHED状態の時、FINを送信して、対向からのFINまたはACKを待っている状態 */
#define TCP_FIN_WAIT2       0x07    /* FIN-WAIT1状態の時、送信したFINに対するACKを受信した状態 */
#define TCP_CLOSE_WAIT      0x08    /* ESTABLISHED状態の時、対向からのFINを受信した状態 */
#define TCP_CLOSING         0x09    /* FIN-WAIT1状態の時、FINを受信後そのFINに対するACKを送信した状態 */
#define TCP_LAST_ACK        0x0A    /* CLOSE-WAIT状態の時、FINを送信して、ACKを待っている状態 */
#define TCP_TIME_WAIT       0x0B    /* FIN-WAIT2からの遷移の場合、FIN受信のACKを送信した状態。CLOSINGからの遷移の場合、送信FINのACKを受信した状態 */