In my main application I create QLocalServer (from Qt 5.5):
// socket_name = /tmp/my_programm_sock
...
QLocalServer::removeServer(socket_name);
if (!server_.listen(socket_name)) {
exit(1);
}
....
Next, I have another one C lang app. I try to connect to this socket:
int sockfd
struct sockaddr_un;
memset(&serv_addr, 0x00, sizeof(serv_addr));
serv_addr.sun_family = AF_LOCAL;
strncpy(serv_addr.sun_path, socket_name, sizeof(serv_addr.sun_path) - 1);
servlen = sizeof(serv_addr);
if ((sockfd = socket(AF_LOCAL, SOCK_STREAM, 0)) < 0) {
perror("Creating socket");
exit(1);
}
if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
perror("Connecting");
exit(1);
}
...
But I keep getting an error: Connecting: Operation not permitted.
I tried to setup chmod 777 to this socket, but the problem is not solved.