我的应用程序在服务器端和客户端创建文件传输线程。现在我在客户端使用延迟策略(一个简单的for循环),以便在服务器中的线程创建过程之后完成客户端中的线程创建。
该应用程序正常。但这很粗糙,如果不是丑陋的话。我需要找到一种技术方法,以便客户端线程在知道服务器线程已经启动之前不会启动。
我尝试从服务器到客户端使用send()。客户端recv()
必须阻止服务器的信号,但显然它不会。客户端控制台上的消息是关于服务器拒绝连接。有什么提示吗?
答案 0 :(得分:1)
select()
可能是你正在寻找的东西:你给它一组套接字并阻塞,直到这些套接字上发生了某些事情(并且你可以提供超时以避免永远等待)。
调用select()
等待,直到客户端收到数据,然后recv()
以确保收到的内容是来自服务器的正确消息。
答案 1 :(得分:0)
似乎你使用无连接传输。在这种情况下,我建议玩乒乓球游戏,客户端将“ping”udp数据包发送到服务器循环(合理的时间段),直到客户端从服务器收到“pong”UDP数据包或超时。