// LOCAL で STREAM なソケットによる通信プログラムの雛型 (サーバー側) #include #include #include #include #include "integnet.h" // 接続の目印となるファイル #define SOCKNAME "/tmp/udsock" int main( void ) { // LOCAL で STREAM なソケットの作成 int sb = socket( AF_LOCAL, SOCK_STREAM, 0 ); // 接続の目印の指定 sockaddr_un addr = SOCKADDR_UN_INIT( AF_LOCAL, SOCKNAME ); // 古い目印の削除(もし残っていると厄介) unlink( SOCKNAME ); // 目印の公開 bind( sb, (sockaddr*)&addr, sizeof(addr) ); // 接続要求の受信開始(同時に1回線まで接続可とする) listen( sb, 1 ); // 接続要求の受信 int s = accept( sb, NULL, NULL ); // データの受信 char msg[64]; int len; len = recv( s, msg, sizeof(msg), 0 ); msg[len] = '\0'; // データの表示 printf("Server received : %s\n", msg ); // ソケットの廃止 close(s); close(sb); // 目印の削除(義務ではないが礼儀) unlink( SOCKNAME ); return 0; }