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

两个子线程之间结束时相互影响了,极度困惑,忘哪位大哥解救,内有完整代码

    来源: 互联网  发布时间:2016-10-02

    本文导语:  本程序实现的是利用双网卡发送ntp数据包并显示其四个时间戳的的操作,由于调试目前只用一块网卡,所以发送的源地址是相同的。我的问题是给线程1 10个地址进行发包,给线程2 20个地址发包,运行的结果是线程1...

本程序实现的是利用双网卡发送ntp数据包并显示其四个时间戳的的操作,由于调试目前只用一块网卡,所以发送的源地址是相同的。我的问题是给线程1 10个地址进行发包,给线程2 20个地址发包,运行的结果是线程1结束后,会直接导致线程2也结束(线程2此时还没有循环完毕),小弟我百思不得其解啊,有没有哪个大神可以帮忙解决一下,晕死了
#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
#define  SIZE      17

#define  debug
pthread_t threada,threadb;

//3600s*24h*(365days*70years+17days)

//#define  From00to70 0x83aa7
long64 From00to70=2208960000000000;//us(has already redueced 8 hours)


char c[30];
#define  src0      "192.168.48.133"
#define  src1      "192.168.48.133"
#define  NTPPORT  123

long64   firsttimestamp,finaltimestamp;

long64   diftime=0,delaytime=0,reftimestamp=0,oritimestamp=0,recvtime=0,trantime=0,T2=0,T3=0;
double recvtimestamp=0,trantimestamp=0,offset=0;
long recvtimestamphigh=0,recvtimestamplow=0,trantimestamphigh=0,trantimestamplow=0;


typedef struct NTPPACKET

{

  uint8     li_vn_mode;
  uint8     stratum;
  uint8     poll;
  uint8     precision;
  ulong32   root_delay;
 ulong32   root_dispersion;
  int8      ref_id[4];
  ulong32   reftimestamphigh;
  ulong32   reftimestamplow;
  ulong32   oritimestamphigh;
  ulong32   oritimestamplow;
  ulong32   recvtimestamphigh;
  ulong32   recvtimestamplow;
  ulong32   trantimestamphigh;   
  ulong32   trantimestamplow;
}NTPPacket;

NTPPacket  ntppack,newpack;

void NTP_Init()

{
  struct timeval 
{
  long tv_sec;
  long tv_usec;
}tv;
  struct timezone tz;

  bzero(&ntppack,sizeof(ntppack));

  ntppack.li_vn_mode=0x1b;//0|(3

    
 
 

您可能感兴趣的文章:

  • 下载了jbuilder5,是rar格式的,解开后有两个文件,一个是rsc-jb5.bin,一个是rsc-jb5.cue,据说这两个文件是刻光盘的,请问谁知道怎么刻?不会用这两个文件直接安装吧?谢谢! iis7站长之家
  • 主进程有两个线程,fork子进程后复制主进程两个线程的内存么?
  • 由同一个服务端创建两个线程分别向两个客户端同时发送不同的数据···
  • 如果两个线程操作同一个Socket,一个线程recv,另一个send。这样会不会导致程序莫名其妙的退出
  • 请问qt启用两个QThread线程可不可以运行不同的程序
  • 请教: 两个线程对一个缓冲区写入与读出 ........在线等.....
  • 关于POSIX进程和线程的两个问题
  • 请问,两个线程同时往串口写东西,会不会乱掉啊???
  • 在创建线程的时候,函数如果有两个参数该怎么办啊
  • 哪位大虾示范一下怎么用两个线程(在线等候)
  • linux多线程编程的两个知识点
  • 两个线程,一音/一视频udp数据包,优先级问题,在线等!
  • Pthread一个牵涉两个线程同步,每轮先串行后并行的问题
  • 如何确定 pthread 双线程是在两个核上运行,而不是在一个核(超核)上运行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教:两个程序只差一点点,可是结果却不相同,请各位大哥帮我看看原因?谢谢!
  • C++ MultiMaps 成员 swap():交换两个multimaps
  • 急!有两个char buf[]里面是两个日期(2004-08-02),怎样判断两个日期之间的天数?(只能用标准C)
  • C++ Lists(链表) 成员 merge():合并两个list
  • 一个Statement不能同时打开两个ResultSet?为了同时打开两个,可以考虑建立两个Statement?甚至两个Connection?
  • C++ Lists(链表) 成员 swap():交换两个list
  • Keepalived 能配两个虚拟ip吗,匹配两个数据库实例?
  • C++ Maps 成员 swap():交换两个map
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • C++ Vectors 成员 swap():交换两个Vector
  • 两个域名,两个端口,一个服务器……
  • C++ Lists(链表) 成员 splice():合并两个list
  • 你们看是不是可以这样理解:在用来进行两个对象的比较时,==操作符用来比较两个对象的引用地址,而equals()用来比较两个对象的值。
  • C++ Strings(字符串) 成员 swap():交换两个字符串的内容
  • 下载了jbuilder5,是rar格式的,解开后有两个文件,一个是rsc-jb5.bin,一个是rsc-jb5.cue,据说这两个文件是刻光盘的,请问谁知道怎么刻?不会用这两个文件直接安装吧?谢谢!
  • C++ Strings(字符串) 成员 compare():比较两个字符串
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • cocos2d中CCSpriteFrameCache文件同时存在两个plist的问题解决
  • 我机器上安装了linux和win2000两个系统,请问如何在两个系统之间切换。
  • linux字符模式下怎样可以运行两个任务(开两个终端)
  • 听说,初学JAVA有两个开源程序是必看的,请问是哪两个。在那里下载?
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效


  • 站内导航:


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

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

    浙ICP备11055608号-3