简明扼要地列举这可能有点困难,但我会尽我所能对领域和问题的新手理解。
我有 2 个进程,一个首先取消链接、创建套接字描述符、绑定、侦听和接受本地 unix 套接字的流服务器。服务器的工作是接受连接,发送任意数据,也接收任意数据。除了初始设置外,客户端进程的工作与服务器相同;创建一个套接字描述符,并连接到 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()");
可能还值得注意的是,我正在使用修改后的版本getaddrinfo
来专门填充addrinfo struct
unix 域。