【发布时间】:2011-04-01 14:21:07
【问题描述】:
我有 2 个套接字服务器,它们只需要尝试多次相互连接。我所做的是创建了 2 个套接字 s1 和 s2。将 s1 绑定到某个端口和地址。 然后在 while(num_trials)
我每次都尝试关闭 s1 套接字 - 这使得 2 服务器也循环 - 但它们仍然没有相互连接。我不确定我是否遗漏了一些细节。我不能使用 select 并且这不是接受多个客户端连接的情况。有没有更好的方法来实现这一点?
【问题讨论】:
我有 2 个套接字服务器,它们只需要尝试多次相互连接。我所做的是创建了 2 个套接字 s1 和 s2。将 s1 绑定到某个端口和地址。 然后在 while(num_trials)
我每次都尝试关闭 s1 套接字 - 这使得 2 服务器也循环 - 但它们仍然没有相互连接。我不确定我是否遗漏了一些细节。我不能使用 select 并且这不是接受多个客户端连接的情况。有没有更好的方法来实现这一点?
【问题讨论】:
默认情况下,套接字是阻塞的。当您对其执行任何操作时,它将阻塞,直到操作完成。因此,您需要使您的套接字非阻塞或使用select(或其他异步机制)。
maheshgupta024 提到的另一种选择是将操作拆分到不同的线程中。例如:服务器在主线程中运行,客户端在辅助线程中。
【讨论】:
如何创建两个线程并相互连接.. 一个应该监听,另一个应该连接一个端口。 即说 S1 正在监听端口 1000 然后 S2 应该连接到 1000 S2 应该监听 2000,S1 应该连接到 2000。
【讨论】: