在C套接字中多次连接到另一个试验

时间:2011-04-01 14:21:07

标签: c sockets

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

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

2 个答案:

答案 0 :(得分:3)

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

maheshgupta024提到的另一种替代方法是将操作拆分为不同的线程。例如:服务器在主线程中运行,客户端在辅助线程中运行。

答案 1 :(得分:1)

如何创建两个线程并相互连接...一个应该是listnening而另一个应该连接一个端口。 即说S1正在侦听端口1000,那么S2应该连接到1000 和S2应该在2000上听,S1应该连接到2000.