我的应用程序在服务器端和客户端都创建了文件传输线程。现在,我在客户端使用延迟策略(一个简单的 for 循环),以便在服务器中创建线程之后在客户端创建线程。
该应用程序运行良好。但这是粗糙的,如果不是丑陋的话。我需要找到一种技术方法,让客户端线程在知道服务器线程已经启动之前不会启动。
我尝试使用从服务器到客户端的 send()。客户端的 recv()
必须阻塞服务器的信号,但显然它不会。客户端控制台上的消息是关于连接被服务器拒绝的。有什么提示吗?
最佳答案
select()
可能是您正在寻找的:您给它一组套接字,它会阻塞直到这些套接字上发生某些事情(并且您可以提供超时以避免永远等待) .
调用 select()
等待客户端收到数据,然后调用 recv()
以确保收到的是来自服务器的正确消息。
关于c - 如何在服务器线程和客户端线程之间同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070191/