How to connect to QLocalServer with posix socket on OSX?

Viewed 241

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.

0 Answers
Related