たろログ2

実験的運用により、記事品質が乱高下することがあります。予めご了承ください。

2022-06-27 Unix Domain Socket について調べた

Unix Domain Socket とは、同一ホスト上でのプロセス間通信におけるデータのエンドポイントである。

unix(7) - Linux manual page (man7.org)

C言語から利用される場合は、以下のように利用される。

struct sock_addr_un {
    sa_family_t sun_family;
    char        sun_path[108];
}

また、下記のサイトで実際にプロセス間通信を動作させることができた。

サーバ側のコードを実行すると /tmp/test.unixsocket というパスに unix domain socket が作成される。

クライアント側のコードを実行してメッセージを入力すると、その unix domain socket を利用してサーバとクライアントが通信を行う。

C言語ソケット通信サンプル(UNIXドメイン) | 底辺プログラマーの戯言 (mathkuro.com)

使い方は以下の通り。環境は Ubuntu の 18.04 である。

それぞれのファイルについて、 server.c, client.c という名前で保存しておく。

片方のプロセスで、以下を実行。

gcc ./server.c -o server
./server

もう片方のプロセスで、以下を実行。

gcc ./client.c -o client
./client

クライアント側でメッセージを入力すると、サーバ側に入力内容が出力される。楽しい。