мой вопрос об IPC с использованием AF_UNIX и SOCK_DGRAM.мой серверный код после удаления некоторых проверок ошибок из кода:
sd = socket(AF_UNIX, SOCK_DGRAM, 0);
memset(&serveraddr, 0, sizeof(serveraddr));
serveraddr.sun_family = AF_UNIX;
strcpy(serveraddr.sun_path, SERVER_PATH);
length = BUFFER_LENGTH;
rc = setsockopt(sd, SOL_SOCKET, SO_RCVLOWAT, (char *)&length, sizeof(length));
rc = bind(sd, (struct sockaddr *)&serveraddr, SUN_LEN(&serveraddr));
rc = recv(sd, buffer, sizeof(buffer), 0));
мой клиентский код после удаления некоторых проверок ошибок из кода:
sd = socket(AF_UNIX, SOCK_DGRAM, 0);
memset(&serveraddr, 0, sizeof(serveraddr));
serveraddr.sun_family = AF_UNIX;
strcpy(serveraddr.sun_path, SERVER_PATH);
memset(buffer, 'a', sizeof(buffer));
socklen_t server_length = sizeof(struct sockaddr);
sendto(sd, buffer, sizeof(buffer), 0, (struct sockaddr *)&serveraddr, server_length);
устарелая проблема, которую я вижулежит в определении SERVER_PATH.как только длина моего SERVER_PATH превышает 14 символов, отправка клиентом (...) завершится с ошибкой («Нет такого файла или каталога»).
некоторые замечания:
есть идеи?