QLocalSocket连接到Linux上的非Qt服务器套接字

时间:2017-05-20 05:12:22

标签: c++ c linux qt sockets

我有一个非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

谢谢。

0 个答案:

没有答案