これを簡潔に列挙するのは少し難しいかもしれませんが、ドメインと問題の初心者の理解に最善を尽くします。
最初にリンクを解除し、ソケット記述子を作成し、バインドし、リッスンし、ローカル UNIX ソケットで受け入れるストリーム サーバーの 2 つのプロセスがあります。サーバーの仕事は、接続を受け入れ、任意のデータを送信し、任意のデータを受信することです。クライアント プロセスの仕事は、初期設定を除いてサーバーと同じことをすることです。ソケット記述子を作成し、UNIX ソケットに接続します。
サーバーを起動すると、UNIX ソケットが作成されていることを確認できます。クライアントを起動するconnect()
と、ファイルまたはディレクトリが存在しないか無効であることを示すエラーが表示されます。そして、はい、以前のようにUNIXソケットを見つけようとすると、ファイルはもう存在しません...
この動作を引き起こしているバグの理由や場所を知っている人はいますか?
コード スニペットが明確にするのに役立つ場合は、それらも投稿できます。
struct addrinfo * server;
int sockfd;
sockfd = socket( server->ai_family, server->ai_socktype, server->ai_protocol );
if( connect(sockfd, server->ai_addr, server->ai_addrlen) == 0 )
return sockfd;
else
perror("connect()");
UNIX ドメイン専用のにデータgetaddrinfo
を入力するために、 の修正版を使用していることにも注意してください。addrinfo struct