我有一个非Qt服务器套接字,我想创建Qt客户端套接字(使用QLocalSocket)并将此客户端连接到非Qt服务器套接字。但客户端无法找到服务器。
这是服务器
int main(int argc, char *argv[]) {
int server_sockfd, client_sockfd;
sockaddr_un server_address;
sockaddr_un client_address;
int client_len;
int res, connect;
/* remove old socket and create unnamed socket */
unlink("server_socket");
server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
/* non-blocking socket */
//fcntl(server_sockfd, F_SETFL, O_NONBLOCK);
/* name the socket */
server_address.sun_family = AF_UNIX;
strcpy(server_address.sun_path, "server_socket");
bind(server_sockfd, (sockaddr*)&server_address, sizeof(server_address));
/* listen client */
printf("server_waiting\n");
listen(server_sockfd, 5);
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd, (sockaddr*) &client_address, (socklen_t*) &client_len);
fcntl(client_sockfd, F_SETFL, O_NONBLOCK);
while(1) {
char ch;
res = recv(client_sockfd, &ch, 1, 0);
if (res == -1) {
sleep(1);
printf("not_received_data_from_client\n");
}
else if(res == 0) {
sleep(1);
printf("client_shutdowned\n");
}
else {
printf("received: %c\n", ch);
}
}
}
我使用Qt客户端示例Local Fortune Client Example
谢谢。