Sockets 无法连接uds客户端套接字

Sockets 无法连接uds客户端套接字,sockets,client,connect,unix-socket,Sockets,Client,Connect,Unix Socket,我是unix域套接字的新手,所以我尝试了beej的客户端和服务器代码: 服务器“工作”,但客户端在调用“连接”函数时出错。我得到:“无效参数”错误 有什么建议吗?创建客户端套接字时,请尝试使用memset struct sockaddr_un sin; memset(&sin, 0, sizeof(sin)); 实际上,我对该教程也有同样的问题,问题在于: len = strlen(remote.sun_path) + sizeof(remote.sun_family); 该赋值缺少

我是unix域套接字的新手,所以我尝试了beej的客户端和服务器代码:

服务器“工作”,但客户端在调用“连接”函数时出错。我得到:“无效参数”错误


有什么建议吗?

创建客户端套接字时,请尝试使用memset

struct sockaddr_un sin;
memset(&sin, 0, sizeof(sin));

实际上,我对该教程也有同样的问题,问题在于:

len = strlen(remote.sun_path) + sizeof(remote.sun_family);
该赋值缺少sun_路径末尾的null字符,因此您只需在右侧的表达式中添加一个:

len = strlen(remote.sun_path) + sizeof(remote.sun_family) + 1;
在我的例子中,调用connect成功地完成了该更改