sockaddr_in構造体を初期化してみます。
H8OSのsyscall.hではsockaddr_in構造体は
struct sockaddr_in {
unsigned char sin_len; // 構造体の大きさ
unsigned char sin_familly; // PF_INET
unsigned short sin_port; // ポート番号
unsigned int sin_addr; // アドレス
};
のように設定されています。
また、sin_familly(sin_familyではない)は
#define AF_UNIX 1
#define AF_INET 2
となっています。
#include <h8/reg3067.h> struct sockaddr_in *addr; int main(void){
|
単純に初期化するだけのプログラムです。
実行結果は、
次に、sockaddr_inをタスク管理バッファで扱います。
入れ子とかネストと呼ばれるプログラムです。
sockaddr_inはポインタ渡しです。
#include <h8/reg3067.h> #define FALSE 0 typedef unsigned char UB; //sockaddr_inの実体を作る struct sockaddr_in a; /** #define MAX_TASK 6 /** info[index].addr = &a; //ポインタの実体を代入 int main(void){ for(i = 0;i < MAX_TASK;i++) {
|
NULLを使ってコンパイルエラーが出る場合は、stddef.hをインクルードします。
sockaddr_inの実体を代入し忘れるとハマります。
実行結果です。
以上、ご利用下さい。(。・ω・)ノ゙
ポインタの復習からsockaddr_in構造体を使ってみる1へ