用于通信C++的 UNIX 套接字

UNIX socket for communication C++

本文关键字:UNIX 套接字 C++ 通信 用于      更新时间:2023-10-16

我正在尝试通过Windows 10 64位中的UNIX套接字在python和C++之间进行通信。
根据文档,要使用UNIX套接字,我需要将家族设置为AF_UNIX而不是AF_INET,并创建一个临时的本地套接字。自去年以来,这似乎在Windows中是可能的,但是我还没有找到有关如何执行此操作的明确解释。
我目前有这个设置:

服务器蟒蛇

HOST = '127.0.0.1'  
PORT = 5555    
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        # Do something with recv(), send()
        ....

客户端C++

WSADATA WSAData;
SOCKET server;
SOCKADDR_IN addr;
WSAStartup(MAKEWORD(2,0), &WSAData);
server = socket(AF_INET, SOCK_STREAM, 0);   
addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 
addr.sin_family = AF_INET;
addr.sin_port = htons(5555);
connect(server, (SOCKADDR *)&addr, sizeof(addr));
// Do something with recv(), send()

由于这种通信对于我的目的来说非常慢,我想做同样的事情,但使用 UNIX 套接字。我该怎么做?谢谢

对于C++,您可能想参考这篇文章中的示例。

对于Python,在撰写本文时尚不受支持。请参阅 bpo-33408。