PC电脑如何同时往2个网卡发送数据包,两个网卡分别连2个设备,我的意思是怎么同时发送数据包到两个设备,数据包必须同步发出,延迟在1ms以内。我用winpcap发送2个数据包时,95%以上是同步的,但是偶尔2个数据包的延迟有16ms,求解!

解决方案 »

  1.   

    我想用Raw socket ,不知可以满足我的要求吗
      

  2.   

    学习下!是不是可以考虑使用UDP或组播方式!
      

  3.   

    两台接收设备要同步,而且你不加任何控制?指望交换机或者路由器替你同步?这非常不保障,想想看,两台设备,CPU使用率,内存使用率,IO使用率,带宽使用率都有可能不一样,而根据TCP的滑动窗口协议,发送端发送数据是由接收端来决定的,因此,即使你是在同一台主机上发送数据给两台主机,但是,由于接收主机的情况不一样,因此,可能会出现一台快一台慢等之类的不同步情况。
    这种情况的话,是不是需要在接收的两台主机之间做个同步呢,发送端给发送的每个数据包编号,接收端互相交换现在收到的数据包的编号进行同步。
      

  4.   


    WINPCAP还能让你选择要发送的设备,RAW SOCKET在哪里?如果你对精度要求很高, 就需要自己做很多事情了. 因为Windows本身就不是一个高精度的系统.
      

  5.   

    两个设备是共享总线的,事实上肯定有先有后啊。
    减少软件层面上的影响,当然最好使用异步调用了,如果只有同步的Send函数,那就开两个线程,同时激活运行(双核以上有效)
      

  6.   


    我的设备是2台相机,采用的是udp协议传输,相机是直接和PC连接的,中间没有路由器,交换机!所以95%以上的时间是同步的,偶尔有1帧,不同步!郁闷!急需解决办法!
      

  7.   


    没有这么厉害的同步吧,两个线程;还有你说的一先一后,但是不会有15ms,所以我大部分两个相机是同步的,小于1ms,偶尔有一帧是16ms,急需解决办法!
      

  8.   

    如果你能保证两个线程工作完全无阻碍的话。
    给两个线程加同步。
    一个线程同步前延时,用于等待同步信号。一个同步控制线程,在同步中延时,以保证同步的稳定性。
    如果还有10+ms的差步,那就是你其他硬件的问题了。就像这样
    线程1:开始->延时1->同步开->同步关->发信号
    线程2:开始->同步开->延时2->同步关->发信号(控制线程)