User manual - PPPライブラリ解説書ver.1.01(2003年2月7日)
DT-900 PPP ライブラリ解説書
- 19 -
int Nopen(char *to, char *portoc, int p1, int p2, int flags)
コネクションをオープンする関数です。
引数 char *to : "n1.n2.n3.n4" リモートホストの IP アドレス。
"*" 受動オープン時。
char *protoc : 使用するプロトコルを設定します。"TCP/IP"、"UDP/IP"、あるい
は、"ICMP/IP"です。
int p1,p2 : ローカルとリモートのポート番号。ポート番号は、2 つのポートを
一致させるために使われます。
受動的オープンの場合は、p2 を 0 に、to を"*"に指定します。
受動的オープンは、何もしないで能動的オープンからメッセージ
が来るのを待ちます。
ポート番号(固定の意味を持つもの以外)を、すぐに再使用する
ことは出来ません。多くのシステムは、ポートの切断処理を行う
前に、かなり長い遅延時間が費やされます。同じポート番号に
再コネクションを要求した場合、その要求は拒絶されるでしょう。
その場合は、Nportno()サブルーチンを使って、ポート番号を
取得してください。
int flags : S_NOWA は、コネクションを開始しリターンします。TCP の能動的
オープンの場合、コネクションが確立されたときはリターンします
が、応答が数分たっても返されないときはタイムアウトになりま
す。
if (SOCKET_ISOPEN(conno))
CONNECTION IS OPEN;
受動的オープンは、永遠に待ちます。S_NOWA オプション無しの
TCP の能動的オープンの場合は、コネクションが確立したときは
リターンしますが、応答が数分経っても返されない場合は、タイ
ムアウトになります。
戻り値 正の数 : コネクションが成功した場合のコネクションナンバー。
-11 : リモートホストのアクセスが不可能。
-12 : タイムアウト。
-14 : 接続先ホストがコネクションを拒否。
-20 : 電源 ON/OFF あり。
-21 : 回線切断。
-22 : ユーザーブレイク。
-23 : 内部エラー発生。
[Nopen 例 1]