対象:
μNet3/Compact、μNet3/Standard
質問:
TCPソケットのTCPステータスを確認する方法はありますか。
回答:
以下の処理にて確認する事が出来ます。
コード: 全て選択
#include "net_hdr.h"
UB sts;
ref_soc(sid, SOC_TCP_STATE, (VP)&sts)
※sid = ソケットID
コード: 全て選択
#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を受信した状態 */