C:没有停止和等待的套接字

时间:2011-03-19 03:36:15

标签: c sockets nonblocking

我正在创建一个类似tftp的程序,但不是停下来等待,我正在尝试使用go-back-n方法。我不太确定如何解决这个问题,因为我有很少的套接字编程经验。

我让我的客户端使用sendto发送所有数据,而我目前只是没有调用recvfrom,因为它会等到我得到响应,但我不希望它等待。我想检查是否有响应,但如果没有,请继续发送数据。

有人能指出我正确的方向吗?如果需要更多信息,请告诉我,我很难详细说明。

谢谢!

1 个答案:

答案 0 :(得分:2)

创建一个非阻塞套接字并使用select()(或poll()或您手头的其他任何机制)来等待套接字的可写性和可读性。然后在出现时对每个州进行适当的反应。

我从来没有用UDP做过这个,但我认为没有理由不这样做(快速谷歌似乎重申了这一点)。