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