我是套接字编程的新手,需要一些关于建立新的对等网络的帮助。我现在所说的是服务器A分别同时连接到客户端B和C.我正在使用select()API来建立它,到目前为止这是有效的(A可以独立地与B和C通信。)我现在想要的是让B和C直接相互通信;假设B请求连接到C而不涉及A. B和C仍将连接到A,但是它们之间将具有点对点连接以便能够彼此通信。知道这是如何工作的吗?我试过让我的客户端程序像服务器一样调用listen()和accept();但它只是冻结了我的客户。
我有一个用户界面可以在客户端/服务器上抛出命令,如果你想知道我是如何实现它的。
任何帮助都将深受赞赏。
答案 0 :(得分:0)
对于TCP连接,一个对等体必须被动侦听,另一个对等体必须主动连接。 (有一个例外,TCP同时打开,这可能不是你想要的。)在你的例子中,要在B和C之间建立连接,你可以像在A和B中那样进行.I.e。你可以让B听,接受,和C连接。
为什么您的客户会冻结?打印错误消息,strace
是您的朋友。