tcp/ip实验须要在指定的时间查看结果,为了实验方便,做了一个定时器。用法是:

在命令行输入:timer

输入数字之后,计时对应秒数

输入m数字之后。计时对应分钟数(支持小数分钟数)

输入q退出。

时间到了之后会有3声蜂鸣,并显示Time is up!

OK,显示一个进度条会好用一些。

程序例如以下:

timer.cpp:

//g++ timer.cpp -o timer.exe -lboost_thread-mgw48-mt-1_56 -lboost_system-mgw48-1_56 -static

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <boost/thread.hpp>
#include <boost/progress.hpp> #ifdef WIN32
#include <fstream>
#include <unistd.h>
#define TEMPNAME "WarningTemp~~~~~~.vbs"
#endif using namespace std;
#define MAXLEN 100 int main()
{
printf("This is a simple timer.\n"
"Input sDigits to time the seconds you want.\n"
"Input mDigits to time the minutes you want.\n"
"For example input s9 to time 9 seconds and\n"
"input m1.5 to time 1 minutes and 30 seconds.\n"
"input q to quit.\n"); char op;
int seconds;
double minutes;
char beep = 7;
char line[MAXLEN];
int i; #ifdef WIN32
ofstream out;
out.open(TEMPNAME);
out << "MsgBox \"Time Is Up!\"";
out.close();
#endif for (;;)
{
start:
printf(">> ");
for (i = 0;
(op = getchar()) != '\n' && i < MAXLEN - 1;
++i)
line[i] = op;
line[i] = 0;
seconds = 0; for (i = 0;
line[i] != 0 && i < MAXLEN;
++i)
{
op = line[i]; if (op == 'q')
goto EndOfFile;
if (op == 'm')
{
sscanf(line + (++i), "%lf", &minutes);
seconds += (int)(minutes * 60);
while (isdigit(line[i])
|| line[i] == '.'
|| isblank(line[i]))
i++;
--i;
} else if (op == 's')
{
sscanf(line + (++i), "%lf", &minutes);
seconds += minutes;
while (isdigit(line[i])
|| isblank(line[i]))
i++;
--i;
} else if (op == ' ' || op == '\t')
{
continue;
} else {
printf("Lexical Error!!\n");
goto start;
}
}
boost::progress_display prog(seconds); for (i = 0; i < seconds; ++i)
{
boost::this_thread::sleep
(boost::posix_time::seconds(1));
++prog;
} for (i = 0; i < 3; ++i)
cout << beep;
cout << "Time is up!!!\n" << endl;
#ifdef WIN32
system("wscript " TEMPNAME);
#else
system("gdialog --msgbox \"Time Is Up!\"");
#endif
}
EndOfFile:
#ifdef WIN32
system("del /s " TEMPNAME);
#endif return 0;
}

Tcp/ip实验准备:一个简单的定时器——boost实现的更多相关文章

  1. TCP/IP模型的一个简单解释

    TCP/IP模型是互联网的基础. 想要理解互联网,就必须理解这个模型.但是,它不好懂,我就从来没有搞懂过. 前几天,BetterExplained上有一篇文章,很通俗地解释了这个模型.我读后有一种恍然 ...

  2. 实验---反汇编一个简单的C程序(杨光)

    反汇编一个简单的C程序 攥写人:杨光  学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163 ...

  3. [Java定时器]用Spring Task实现一个简单的定时器.

    今天做一个项目的的时候需要用到定时器功能.具体需求是: 每个月一号触发一次某个类中的方法去拉取别人的接口获取上一个月份车险过期的用户.如若转载请附上原文链接:http://www.cnblogs.co ...

  4. 一个简单的定时器(NSTimer)的封装

    在项目开发中我们有的时候需要用到计时器,比如登录超时,scrollview的滚动等,那么就让我们自己手动的去创建一个类库吧. 1 首先你需要一个向外提供创建的便捷方法. 1.1 这里考虑两种情况,一种 ...

  5. 使用Windows service创建一个简单的定时器

    一.需求 我们有时候可能会想要做一些定时任务,例如每隔一段时间去访问某个网站,或者下载一些东西到我们服务器上等等之类的事情,这时候windows service 是一个不错的选择. 二.实现 1.打开 ...

  6. 用Java socket (TCP通信模型)实现一个简单的web 服务器

    package cn.magicdu.think.socket; import java.io.OutputStream; import java.io.PrintWriter; import jav ...

  7. C语言中利用clock设计一个简单的定时器

    time.h是C/C++中的日期和时间头文件,用于需要时间方面的函数,定义了四个变量类型.两个宏和各种操作日期和时间的函数. 其中计时函数是clock(),而与其相关的数据类型是clock_t.clo ...

  8. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

  9. TCP/IP协议学习笔记

    计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...

随机推荐

  1. Oracle PLSQL Demo - 24.分隔字符串function

    -- refer: -- http://www.cnblogs.com/gnielee/archive/2009/09/09/1563154.html -- http://www.cnblogs.co ...

  2. 关于一个页面的tab切换整体页面刷新而tab标签处是同一个文件怎么做焦点的问题

    解决方法,不能直接写点击效果就要在超链接中加一个参数,根据参数的值去给变焦点的效果,实现方法如下: <div class="vip_search">           ...

  3. poj2452

    题意:就是说给你一段区间,要你找出一段最长的区间,在这段区间的所有数都大于区间的第一个数.小于区间的最后一个数......输出区间的长度,若是长度为0则输出-1. 4 5 4 3 6 4 6 5 4 ...

  4. Head first 第一章

    一.两个设计原则: 原则一:找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起. 鸭子模型中展现是必须的,而且每个展现都不一样,所以可以在基类中定义一个抽象类.以便子类可以 ...

  5. mysql 的一点点记录

    以后再来整理. -- 查询一个学校的报修单数 SELECT s.id AS schoolId , -- 学校ID COUNT(i.id) as cntId, -- 报修单数 IFNULL(t1.noh ...

  6. Java字符串的格式化与输出

    Java字符串的格式化与输出 在C语言中格式化输出能够通过printf()函数实现,在Java中无需借助第三方工具相同能够实现此功能.自Java SE5后,java也提供了C语言中printf()风格 ...

  7. 【WPF】获取下拉列表(ComboBox)的选项(ComboBoxItem)的内容

    需求:给下拉列表ComboBox注册一个选项改变时触发的事件,想要获取到当前选中的选项的内容. // 给ComboBox注册一个选项改变的事件 myComboxBox.SelectionChanged ...

  8. 实践中更高效、实现起来相对简单的基于末尾坏字符原则的BM算法实现

    之前网上看的若干算法,无非两个原则:坏字符原则.好后缀原则.按照算法所述实现了一个版本,但发现其效率还不如本文所述的实现方式.个人分析效率较低的原因可能是因为不断地向前找坏字符或者好后缀来确定跳跃距离 ...

  9. System类及其getProterties( )和getProperty( )

    System这个类来源: public final class System extends Object System类包含若干个有用的类字段和方法,而且不能被实例化.System类提供的工具包括标 ...

  10. oracle 字符集 AL32UTF8、UTF8

    简介:ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储.处理和检索数据.利用全球化支持,ORA ...