85 typedef struct dns_record_t
101 typedef struct dns_records_t
104 dns_record_t **record;
114 typedef BOOL (*UDP_HANDLE_FUNC)(
115 unsigned char dest_ip[4],
116 unsigned char src_ip[4],
117 unsigned short dest_port,
118 unsigned short src_port,
125 typedef struct tcp_server_str tcp_server_t;
143 typedef struct client_stat_t
145 unsigned char ipaddr[4];
146 unsigned short local_port;
147 unsigned short foreign_port;
153 typedef struct clients_stat_t
156 client_stat_t *clients;
322 BOOL
tketh_send_udp(
unsigned char tgtaddr[4],
unsigned short dest_port,
unsigned short src_port,
unsigned char *buf,
int len);
342 BOOL
tketh_send_ping(
unsigned char ipaddr[4],
unsigned char *buf,
int len);
522 void tketh_debug_push(
int len,
unsigned char *buf,
int isSend);
523 BOOL tketh_debug_pop(
int *len,
unsigned char *buf,
int *isSend);
524 int tketh_debug_count();
525 void tketh_debug_ethpacket(
int len,
char *buf,
int isSend);
526 void packet_dump(
unsigned char *buf,
int len,
int isSend);
clients_stat_t * tketh_get_client_stats()
クライアントの状態を調べる
void tketh_regist_udp_handler(UDP_HANDLE_FUNC func)
UDPを受信したときにコールバックされる関数を登録する
void tketh_tcp_fin(tcp_t *info)
コネクションの穏やかな終了
void tketh_tcp_set_rbuf_length(unsigned short len)
TCPの受信バッファの長さを設定する
BOOL tketh_dhcpc(void)
DHCPを実行して、IPアドレス、GW、DNSサーバを設定する
BOOL tketh_is_ping_running()
PINGが実行中かどうか調べる
void tketh_set_myipaddr(unsigned char ipaddr[4], unsigned char mask[4])
自分のIPアドレスを設定する
void tketh_get_macaddr(unsigned char macaddr[6])
自分のMACアドレスを調べる
SYN_SENT SYNを送った。サーバからのACK待ち
char * tketh_tcp_state(tcp_t *info)
コネクションの状態を文字列で返す
void tketh_debug(int level)
デバッグレベルを設定する
int tketh_tcp_recvdata(tcp_t *info, unsigned char *data, int len)
受信バッファからデータを取り出す
BOOL tketh_tcp_listen(tcp_t *info)
サーバの受信開始
dns_records_t * tketh_nslookup_ex(char *hostname)
DNSサーバにアクセスして名前解決を行い、すべてのレコードを得る
void tketh_get_myipaddr(unsigned char ipaddr[4], unsigned char mask[4])
自分のIPアドレスを取得する
void tketh_tcp_server_terminate(tcp_t *info)
サーバの待ち受け状態を終了する
char * tketh_get_hostname(void)
自分の名前を調べる
void tketh_tcp_senddata(tcp_t *info, unsigned char *data, int len)
TCPの接続先にデータを送信する
void tketh_get_gateway(unsigned char ipaddr[4])
設定されているデフォルトゲートウェイのアドレスを取得する
void tketh_cancel_ping()
PINGの実行をキャンセルする
unsigned long tketh_ping_starttime()
最後にPINGを送った時刻をus単位で返す
unsigned char * tketh_tcp_target_addr(tcp_t *info)
接続先のIPアドレスを調べる
void tketh_change_macaddr(const unsigned char macaddr[6])
MACアドレスを変更する
void tketh_process()
イーサネットの受信処理を進める
void tketh_set_nameserver(unsigned char ipaddr[4])
DNSサーバのアドレスを設定する
struct tcp_str tcp_t
TCPの接続情報を示す構造体 内部構造は知る必要はないため隠蔽されている
void tketh_open(unsigned char *macaddr)
自分のMACアドレスを設定し、ライブラリを開始する
BOOL tketh_nslookup(char *hostname, unsigned char ipaddr[4])
DNSサーバにアクセスして名前解決を行う
TIME_WAIT クライアントからCLOSEされた後の待ち
BOOL tketh_send_udp(unsigned char tgtaddr[4], unsigned short dest_port, unsigned short src_port, unsigned char *buf, int len)
UDPを送信する
void tketh_free_dns_records(dns_records_t *dnsrec)
DNS結果構造体を開放する
BOOL tketh_send_ping(unsigned char ipaddr[4], unsigned char *buf, int len)
PINGを送信する
BOOL tketh_tcp_is_connected(tcp_t *info)
コネクションが接続中かどうかを調べる
void(* FUNCTYPE_TCPEVENT)(tcp_t *client)
TCPのイベントが起きた時にコールバックされる関数の型
void tketh_set_hostname(const char *hostname)
自分の名前を設定する
tcp_t * tketh_tcp_connect(unsigned char ipaddr[4], unsigned short dest_port)
TCPでサーバに接続する
LINK_STATE tketh_check_link()
イーサネットのリンクアップをチェックする。
void tketh_set_gateway(unsigned char ipaddr[4])
デフォルトゲートウェイを設定する
tcp_t * tketh_tcp_open_server(unsigned short port, FUNCTYPE_TCPEVENT func)
TCP接続を待ちうけたいポート番号をセットする
CLOSING FINを送ったらFINを送り返された
BOOL tketh_ip_to_hostname(unsigned char ipaddr[4], char *hostname, int hostname_maxlen)
DNSサーバにアクセスしてIPアドレスから名前を調べる
int tketh_tcp_recvcount(tcp_t *info)
受信バッファに溜まっているデータの量を調べる
void tketh_arp_table_show()
ARPのテーブルを表示する
void tketh_get_nameserver(unsigned char ipaddr[4])
設定されているDNSサーバのアドレスを取得する