我尝试使用 openbsd-netcat 连接到 UNIX 套接字服务器,但出现错误:
connect(): Protocol wrong type for socket
我的套接字类型是SOCK_SEQPACKET
,并且似乎nc
尝试将其打开为SOCK_DGRAM
或SOCK_STREAM
。顺便说一句,nc
无法连接到匿名 UNIX 套接字(名称以“\0”开头)。
所以我想知道是否有任何方法可以从服务器获取套接字类型信息以更改socket()
成功连接的参数?或者只有一种方法:查看所有类型而socket()
会成功?
让我解释一下:在客户端不知道他需要连接的套接字类型的情况下,正确的做法是什么?