gpt4 book ai didi

c - C套接字中的多个相互连接试验

转载 作者:太空宇宙 更新时间:2023-11-04 06:42:51 25 4
gpt4 key购买 nike

我有 2 个套接字服务器,它们只需要尝试多次相互连接。我所做的是创建了 2 个套接字 s1 和 s2。将 s1 绑定(bind)到某个端口和地址。然后在 while(num_trials)<200 循环中,我用 s1 运行 connect() 到服务器 2。当我运行这两个程序时,第一个服务器循环并显示它正在尝试但它们没有相互连接。同时第二个服务器进入循环 1 次并等待。

我试图每次都关闭 s1 套接字 - 这使得 2 服务器也循环 - 但它们仍然没有相互连接。我不确定我是否遗漏了一些细节。我不能使用选择,这不是接受多个客户端连接的情况。有没有更好的方法来实现这一点?

最佳答案

套接字默认是阻塞的。当您对其执行任何操作时,它将阻塞直到操作完成。因此,您需要使您的套接字成为非阻塞的或使用 select (或其他异步机制)。

另一种选择,如maheshgupta024所述,就是把操作拆分到不同的线程中。例如:服务器在主线程中运行,客户端在辅助线程中运行。

关于c - C套接字中的多个相互连接试验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com