/** * MobileWonderGate Network Communication Library * copyright 2000-2001, by Naga(nagaw@attglobal.net) * * $Id$ * * $Log$ */ 1.【socket Library for MobileWonderGate】 MobileWonderGateを利用したInternetアクセスを提供するsocketライブラリ。 BSDソケットもどきのライブラリを提供することで、他のOSからのInternet系 アプリケーションの移植を簡単に行えることを優先にライブラリを作成した。 2.【基本関数】 MobileWonderGateを利用するための基本的なコマンド関数群。 A) mwgate_open - MobileWonderGateのオープン 書式 : int mwgate_open(int speed); 引数 : speed - 通信ポートの速度(COMM_SPEED_9600 or COMM_SPEED_38400) 戻値 : MWG_ERROR = 致命的なエラーが発生。 0 = MobileWonderGateの電源をON。 その他 = MobileWonderGateのバージョン。 (例> 0x31 0x30 = Ver.1.0) 説明 : 通信ポートのオープンと通信タイムアウト(送受信とも-1)の設定。 MobileWonderGateの電源ONコマンドを送信。 通信速度は、基本的にCOMM_SPEED_9600を設定してください。 B) mwgate_close - MobileWonderGateのクローズ 書式 : int mwgate_close(void); 引数 : なし 戻値 : MWG_ERROR = 致命的なエラーが発生。 0 = MobileWonderGateの電源を切断。 説明 : MobileWonderGateの電源OFFコマンドを送信。 通信ポートのクローズ。 エラーが発生しても、通信ポートのクローズは強制的に行います。 C) mwgate_status - MobileWonderGateの状態を調べる 書式 : int mwgate_status(void); 引数 : なし 戻値 : MWG_ERROR = 致命的なエラーが発生。 0x02 = MobileWonderGateの電源がON。 0x03 = PPPが動作中(電話が接続中)。 説明 : MobileWonderGateの現在の動作状況を調べるコマンドを送信。 D) mwgate_check_pdc - 接続されている携帯電話を調べる 書式 : int mwgate_check_pdc(void); 引数 : なし 戻値 : MWG_ERROR = 致命的なエラーが発生。 下位BYTE = 携帯電話の接続状況。 0x00 = 正しく携帯電話が接続されている。 0x01 = 話し中。 0x02 = 圏外。 0x03 = 携帯電話が接続されていない。 上位BYTE = 受信電波のレベル。(0〜15) 説明 : MobileWonderGateに接続されている携帯電話の状態を調べるコマンドを送信。 E) mwgate_set_ppp - PPPのログイン情報の設定 書式 : int mwgate_set_ppp(char far *user, char far *pass); 引数 : user - PPPログイン用のユーザーID文字列。 pass - PPPログイン用のパスワード文字列。 戻値 : MWG_ERROR = 致命的なエラーが発生。 1 = PPPのログイン情報の設定に成功。 0 = PPPのログイン情報の設定に失敗。 説明 : PPPのログインで使用するユーザー認証情報を設定するコマンドを送信。 F) mwgate_set_dns - DNSサーバーの設定 書式 : int mwgate_set_dns(struct in_addr far *dns1, struct in_addr far *dns2); 引数 : dns1 - プライマリーDNSサーバーのIPアドレス。 dns2 - セカンダリーDNSサーバーのIPアドレス。 戻値 : MWG_ERROR = 致命的なエラーが発生。 1 = DNSサーバーの設定に成功。 0 = DNSサーバーの設定に失敗。 説明 : 使用するDNSサーバーを設定するコマンドを送信。 ただし、利用プロバイダーのPPPがDNSサーバーを自動設定にしている場合、 プロバイダーの設定を優先する。 G) mwgate_dialup - 電話回線を接続して、PPPを起動する 書式 : int mwgate_dialup(char far *tel); 引数 : tel - 接続先の電話番号。 戻値 : MWG_ERROR = 致命的なエラーが発生。 0x00 = 電話回線を接続。PPPのネゴシエーションに成功。 その他 = 切断理由。 0x01 = 電話先からの応答がない。 0x02 = 話し中。 0x03 = リダイアル規制中。 0xF0 = 通信が切断された。 0xFF = 携帯電話が接続されていない。 説明 : H) mwgate_hangup - PPPを終了して、電話を切断する 書式 : int mwgate_hangup(void); 引数 : なし 戻値 : MWG_ERROR = 致命的なエラーが発生。 その他 = 切断理由。 説明 : 3.【socket関数】 BSD socketライクなInternetアクセス関数群。 A) inet_addr - 文字列をIPアドレスへ変換 書式 : unsigned long inet_addr(char far *cp); 引数 : cp - IPアドレスに変換する文字列。 戻値 : INADDR_NONE = IPアドレスへの変換に失敗。(数値と"."以外の文字が含まれる) その他 = 文字列をIPアドレスに変換した値。 説明 : 戻値のIPアドレスは、Network-Byte orderになっています。 B) inet_ntoa - IPアドレスを文字列に変換 書式 : char far * inet_ntoa(unsigned long in); 引数 : in - 文字列に変換するIPアドレス。 戻値 : IPアドレスを表す文字列へのポインタ。 説明 : 変換するIPアドレスは、Network-Byte orderである必要があります。 C) gethostbyname - IPアドレスの取得 書式 : struct hostent far * gethostbyname(char far *name); 引数 : name - アドレスを取得するホストの名称。 戻値 : NULL = アドレスの取得に失敗。 その他 = アドレス情報の構造体へのポインタ。 説明 : D) connect - ソケットの接続 書式 : int connect(int s, struct sockaddr far *name, int namelen); 引数 : s - 接続するソケット。 name - 接続先アドレス構造体へのポインタ。 namelen - 接続先アドレス構造体のサイズ。 戻値 : MWG_ERROR = 致命的なエラーが発生。 1 = ソケットの接続に成功。 0 = ソケットの接続に失敗。 説明 : E) recv_line - データの受信(一行のみ) 書式 : int recv_line(int s, char far *buff, int len, int flags); 引数 : s - 受信するソケット。 buff - データを受信するバッファのポインタ。 len - 受信バッファのサイズ。 flags - 送信オプションフラグ。(未使用) 戻値 : MWG_ERROR = 致命的なエラーが発生。 -1 = 受信エラー。(受信すべきデータがない) その他 = 受信したデータの長さ。 説明 : 受信バッファサイズは、最大MWG_RECV_BUFFまで指定可能です。 F) recv - データの受信 書式 : int recv(int s, char far *buff, int len, int flags); 引数 : s - 受信するソケット。 buff - データを受信するバッファのポインタ。 len - 受信バッファのサイズ。 flags - 送信オプションフラグ。(未使用) 戻値 : MWG_ERROR = 致命的なエラーが発生。 -1 = 受信エラー。(受信すべきデータがない) その他 = 受信したデータの長さ。 説明 : 受信バッファサイズは、最大MWG_RECV_BUFFまで指定可能です。 G) send - データの送信 書式 : int send(int s, char far *buff, int len, int flags); 引数 : s - 送信するソケット。 buff - 送信するデータのバッファへのポインタ。 len - 送信するデータの長さ。 flags - 送信オプションフラグ。(未使用) 戻値 : MWG_ERROR = 致命的なエラーが発生。 -1 = 送信エラー。 その他 = 送信したデータの長さ。 説明 : H) socket - ソケットの作成 書式 : int socket(int af, int type, int protocol); 引数 : af - 通信ドメイン。(PF_INET固定。未使用) type - ソケット種類。(SOCK_STREAM固定。未使用) protocol - IPプロトコル。(IPPROTO_TCP固定。未使用) 戻値 : MWG_ERROR = 致命的なエラーが発生。 -1 = ソケットの作成に失敗。 その他 = 作成したソケットの値。 説明 : I) soclose - ソケットのクローズ 書式 : int soclose(int s); 引数 : s - クローズするソケット。 戻値 : MWG_ERROR = 致命的なエラーが発生。 1 = ソケットのクローズに成功。 0 = ソケットのクローズに失敗。 説明 : 4.【Logging関数】 MobileWonderGateの通信ログを保存するための関数群。 A) mwgate_openLog - 通信ログの記録を開始する 書式 : void mwgate_openLog(long lLogSize); 引数 : lLogSize - ログの記録サイズ。(BYTE単位) 戻値 : なし 説明 : 指定されたサイズ/128でファイルをcreate()し、ログの記録を開始します。 出力ログファイル名は、"/ram0/mwgate.log"固定です。 B) mwgate_closeLog - 通信ログの記録を終了する 書式 : void mwgate_closeLog(void); 引数 : なし 戻値 : なし 説明 :