我用UDP套接字做了一个非常简单的TCP模拟网络应用程序。
但是,我想同时使用和调用sendto(),recvfrom()函数来实现流水线,它使用称为“选择性重复”的协议。我的意思不是像send,wait,receive,send,wait,receive,...,我的意思是像send,receive,send,send,receive,receive这样的行为,没有任何调用sendto(),recvfrom()的顺序,这是对这些函数的随机调用。
但基本上,如果我不能同时使用这些功能,sendto()、recvfrom()就会像停止和等待协议一样工作。
但是,在流水线实现中,sendto()、recvfrom()函数同时执行。
我应该使用pthread还是其他解决方案??还是多路复用?
发布于 2016-06-08 21:59:49
要同时做任何事情,你需要有多个线程。
一个线程将根据需要调用sendto,另一个线程将处于调用recvfrom的循环中。
发布于 2016-06-08 22:11:53
如果你想自己实现,就应该使用线程。但是如果你想使用一个内置的函数,可以通过7.2 this pdf一节中的select函数。它是一个强大的工具,也是最常用的工具。
它主要做的是跟踪准备好进行通信的连接。
https://stackoverflow.com/questions/37704482
复制相似问题