UDP发送端FPGA一次发过来256个包,包长512字节,包跟包之间的间隔是100ns,FPGA以及电脑的速度都是千兆的。我自己编写的UDP接收软件只能接收十几个包……在网上有看到说调用一次recvfrom要花掉大约5.7us,这个数据可靠吗?如果真是这样的情况的话,那岂不是只有缓冲区中的数据包可以收到了吗?该怎么改善这样的情况!!!有没有别的办法进行网络编程,可以使接收数据包的速度快些呢?(我用的是VC6.0,用vs2008的话,这种情况会得到改善吗?)
这个问题困扰了我好久,望各位高手帮忙分析分析呀!谢谢哦!
这个问题困扰了我好久,望各位高手帮忙分析分析呀!谢谢哦!
可以试图优化,如把包组合起来,用tcp等
http://download.csdn.net/detail/geoff08zhang/4571358
系统内部会有个接收缓冲区 通过setsockopt(hSocket,SOL_SOCKET,SO_SNDBUF, ..., ...); 可以设置它的大小。 recvfrom 相当于copy内存。 cpu的速度是一定大于网络io的