1

我的应用程序在服务器端和客户端创建文件传输线程。现在我在客户端使用延迟策略(一个简单的 for 循环),以便在服务器中的线程创建过程之后完成客户端中的线程创建。

该应用程序运行良好。但这很粗糙,如果不是丑陋的话。我需要找到一种技术方法,以便客户端线程在知道服务器线程已启动之前不会启动。

我尝试使用从服务器到客户端的 send() 。客户端recv()必须阻止服务器的信号,但显然它没有。客户端控制台上的消息是关于连接被服务器拒绝的。请问有什么提示吗?

4

2 回答 2

1

select()可能是您正在寻找的:您给它一组套接字,它会阻塞,直到这些套接字上发生某些事情(并且您可以提供超时以避免永远等待)。
调用select()以等待客户端接收到数据,然后recv()确保接收到的是来自服务器的正确消息。

于 2012-12-28T13:42:42.617 回答
0

似乎您使用无连接传输。在这种情况下,我建议玩乒乓游戏,客户端循环发送“ping”udp数据包到服务器(有合理的周期),直到客户端从服务器接收到“pong”UDP数据包或超时。

于 2012-12-28T13:41:53.437 回答