当前位置:  技术问答>linux和unix

UDP发包提速的问题

    来源: 互联网  发布时间:2016-11-21

    本文导语:  各位大侠们,帮我看下,这段代码,我想平均快速发送UDP包,计划每200 us发一个包,可是测试时总不能平均发送,速度也提不上来,不知道是怎么;回事~~~ #include  #include  #include  #include  #include  #include  #include  #i...

各位大侠们,帮我看下,这段代码,我想平均快速发送UDP包,计划每200 us发一个包,可是测试时总不能平均发送,速度也提不上来,不知道是怎么;回事~~~
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include

#include

#define  int8      char
#define  uint8     unsigned char
#define  uint32    unsigned int
#define  ulong32   unsigned long
#define  long32    long
#define  int32     int
#define  long64    long long

//3600s*24h*(365days*70years+17days)
#define  From00to70 0x83aa7e80U

#define  NTPSVR            "192.168.2.30"                        //MY server
//#define  LOCAL              "192.168.2.109"
#define  LOCALPORT       8000
#define  NTPPORT           123
  
int                pthreads                    =  0;            //定义线程的数量
#define            timer                      200                   // 计算每x us发一个包                 
long int           total_pkt             =   0;                       //   计算发包量,初始化为0个   
int                 maxpkt                 =   0  ;               //一次发包量   
int                 counter                =      0;            //发送临时算数器
int                 fd[2];
int                 send_tmp             =     0;                 //发送临时计数器
int                 rec_maxpkt;                                   //接收总量
int                 rec_pkt                =     0;              //接收计数

 
pthread_mutex_t ntppack_mutex = PTHREAD_MUTEX_INITIALIZER;//init pthread
pthread_mutex_t newpack_mutex = PTHREAD_MUTEX_INITIALIZER;//init pthread


  int32  sockfd;
  struct timeval tv_start,tv_end;
  struct timezone tz_start,tz_end;
  struct sockaddr_in addr,local_addr;   
  pthread_t tidA;

/*
*NTP包的结构
*
*/
typedef struct NTPPACKET
{
  uint8       li_vn_mode;
  uint8       stratum;
  uint8        poll;
  uint8        precision;                                         //有符号整数表示本地时钟精确度
  ulong32   root_delay;                                   //到达服务器的一次往返的总延时,是15到16位有符号的定点小数
  ulong32   root_dispersion;                           // 到达服务器的一次标准误差,是15-16位的无符号的定点小数
  int8          ref_id[4];
  ulong32   reftimestamphigh;                      //本地时钟最后被设定或校正的时间T4
  ulong32   reftimestamplow;
  ulong32   oritimestamphigh;                //向服务器请求分离客户机的时间戳,采用64位时标格式T1
  ulong32   oritimestamplow;
  ulong32   recvtimestamphigh;             //向服务器请求到客户机的时间戳,采用64位时标格式T2
  ulong32   recvtimestamplow;
  ulong32   trantimestamphigh;           //向客户机答复分离服务器的时间戳,采用64位时标格式T3,用T3来校正本地时间 
  ulong32   trantimestamplow;
}NTPPacket;

NTPPacket  ntppack,newpack;

//定义为long64,解决32位数的符号位问题
long64   firsttimestamp,finaltimestamp;
long64   diftime,delaytime;

void NTP_Init()
{
  bzero(&ntppack,sizeof(ntppack));
  ntppack.li_vn_mode=0x1b;//0|(3

    
 
 

您可能感兴趣的文章:

  • UDP开发包 ENet
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 50求教一个菜鸟级别的UDP套接字问题,关于UDP server端只能接收一次数据的问题?在线等,一直等............
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 关于epoll&udp的问题?
  • TCP与UDP通信问题!
  • udp问题
  • 关于udp sendto时候端口选定问题
  • udp连接问题
  • vmware 下 linux 和 windows 用过 udp 通信问题
  • 关于UDP打洞的问题,奇怪
  • linux 下使用 sendmsg 函数 udp 通信问题???
  • 高手请进,内核构造UDP包的问题
  • udp服务器和TCP服务器的问题
  • UDP发广播报文的问题?
  • 关于udp的一个问题
  • 求助UDP socket sendto返回EHOSTDOWN的问题
  • linux下UDP通信奇怪问题
  • udp传输问题
  • UDP和TCP带宽竞争处理问题
  • 飞秋聊天程序UDP接收问题
  • 关于UDP和NAT的问题
  • Qt:UDP:如何划分接收到的UDP包的界限
  • udp包大于1500字节网络传输会分包吗?udp tcp多大的包比较合适?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • udp方式抓取网页
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
  • udp socket客户端和udp服务端程序示例分享
  • 请问下怎么关闭SUSE 9.1下UDP的checksum?
  • 如何判断udp端口可达
  • 对于socket UDP传输,一个端口只能被一个进程绑定?
  • IP,UDP,TCP的校验和计算


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3