• 検索結果がありません。

関数個別説明

ドキュメント内 MDH-J0004 (ページ 82-86)

第 4 章 CPU 制御 56

5.5 関数個別説明

1. ipconfig

【機能】

IPアドレスを設定します。

【書式】

#include "IFDJSOCK.h"

int ipconfig(

int int_vect,

unsigned long ipaddr, unsigned long ipmask, ); unsigned long ipdefgw

【パラメータ】

int_vect パケットドライバのソフトウェア割り込み番号を設定します。

パケットドライバのデフォルトは0x60です。

ipaddr IPアドレスを設定します。

ipmask サブネットマスクを設定します。

ipdefgw デフォルトゲートウェイアドレスを設定します。

使用しない場合は0を設定します。

【戻り値】

正常終了の場合、0以上のソケット記述子を返します。

異常終了の場合、-1を返します。

本関数を DOS System(日本語環境モデル)以外で使用した場合、-9を返します。

【記述例】

TCPの接続を切断します。

ソフトウェア割り込み番号 = 0x60

IPアドレス = 192.168.0.2 サブネットマスク = 255.255.255.0 デフォルトゲートウェイ = なし

r = ipconfig(0x60, inet_addr("192.168.0.2"), 0xFFFFFF00L, 0);

if (r < 0) {

/* エラー */

} else {

/* 正常終了 */

}

2. socket

【機能】

ソケット記述子を作成します。

【書式】

#include "IFDJSOCK.h"

int socket(

int af,

int type,

int protocol );

【パラメータ】

af アドレスファミリを設定します。

AF_INETを設定します。

type ソケットタイプを設定します。

SOCK_DGRAMを設定します。

protocol プロトコルを設定します。

0を設定します。

【戻り値】

正常終了の場合、0以上を返します。

異常終了の場合、-1を返します。

本関数を DOS System(日本語環境モデル)以外で使用した場合、-9を返します。

【記述例】

ソケットを作成します。

int sd;

sd = socket(AF_INET, SOCK_DGRAM. 0) if (sd < 0) {

/* エラー */

} else {

/* 正常終了 */

}

3. sendto

【機能】

指定されたアドレスへデータを送信します。

【書式】

#include "IFDJSOCK.h"

int sendto(

int s,

char far *buf,

int len,

int flags,

struct sockaddr far *to,

int tolen

);

【パラメータ】

s ソケット記述子を設定します。

buf 送信するデータが入っているバッファへのポインタを設定します。

len Bufのデータの長さを設定します。

flags オプションです。0を設定します。

to sockaddr構造体へのポインタを設定します。

マルチキャストアドレス, ポート番号を設定します。

struct in_addr { union { struct {

unsigned char s_b1, s_b2, s_b3, s_b4;

} S_un_b;

struct {

unsigned short s_w1, s_w2;

} S_un_w;

unsigned long S_addr;

} S_un;

};

struct sockaddr_in {

short sin_family; /* AF_INET のみ設定可 */

unsigned short sin_port; /* 送信先 ポート番号 */

struct in_addr sin_addr; /* 送信先 IPアドレス1 */

char sin_zero[8];

};

tolen toの指すsockaddr構造体の長さです。

【戻り値】

正常終了の場合、0以上を返します。

異常終了の場合、-1を返します。

本関数を DOS System(日本語環境モデル)以外で使用した場合、-9を返します。

【制限事項】

以下の制限事項があります。

1. IPフラグメントには対応していません。

2. M TUは1500, TTLは16に設定されています。

【記述例】

TCPの接続要求を受け付けます。

マルチキャストIPアドレス239.192.1.2のport12345に、

文字列”HELLO”を送信します。

struct sockaddr_in addr;

char send_data = "HELLO"; /* 送信データ */

addr.sin_family = AF_INET;

addr.sin_port = htons(12345);

addr.sin_addr.S_un.S_addr = inet_addr("239.192.1.2");

r = sendto(sd, send_data, strlen(send_data), 0,

(struct sockaddr far *) &addr, sizeof(struct sockaddr_in));

if (sd < 0) {

/* エラー */

} else {

/* 正常終了 */

}

4. close_socket

【機能】

ソケットを閉じます。

【書式】

#include "IFDJSOCK.h"

int clise_socket(

int s

);

【パラメータ】

s 閉じるソケットのソケット記述子を設定します。

【戻り値】

正常終了の場合、0以上を返します。

異常終了の場合、-1を返します。

本関数を DOS System(日本語環境モデル)以外で使用した場合、-9を返します。

【記述例】

ソケット記述子sdのソケットをクローズします。

r = close_socket(sd);

if (r < 0) {

printf("ERROR: iNetErrNo = %d ¥n", iNetErrNo);

}

ドキュメント内 MDH-J0004 (ページ 82-86)