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. Markdown 11种基本语法【转】

    [转自:http://www.cnblogs.com/hnrainll/p/3514637.html] 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式 ...

  2. (Python mysql驱动的解决)_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':问题的解决

    在win7下安装了Python后,想安装python-MySQL,使用pip安装出现如下问题: >pip install MySQL-python _mysql.c(42) : fatal er ...

  3. 使用matplot做图--sin图像

    # _*_ coding:utf-8 _*_ import numpy as np import matplotlib.pyplot as plt x = np.arange(-5, 5, 0.1) ...

  4. 【C++程序员学 python】python 之变量

    既然学过C++,那么就应该知道变量是什么,常量是什么. python 相比于C++,在使用变量之前不用先声明. 而是直接使用,python 会根据你的变量自动识别其类型. 假如a = 123 那么a ...

  5. plsql 只能识别32位的oracle解决办法

    http://www.cnblogs.com/ymj126/p/3712727.html#undefined

  6. 【C#】允许泛型方法<T>返回空值Null

    在设计一个返回类型为T的泛型方法时,有时希望能返回空Null,然后会报错: 根据提示,将返回值由Null改为default(T)即可. default(T)表示返回当前T类型的默认值,如果T为int则 ...

  7. JVM Client Server启动设置

    看看你下面的这两个文件,是不是尺寸差别很大?%JAVA_HOME%/jre/bin/client/jvm.dll%JAVA_HOME%/jre/bin/server/jvm.dll   Jvm动态库有 ...

  8. 内核定时器timer_list

    内核在时钟中断发生后执行检测各个定时器是否到期,到期后的定时器处理函数将作为软中断在底半部执行.实质上,时钟中断处理程序会唤起TIMER_SOFTIRQ软中断,运行当前处理器上到期的所有定时器.lin ...

  9. Ubuntu14.04使用DEB安装Mysql5.7

    下载deb-bundle包 1.mysql下载页面 2.解压 安装(注意安装顺序)          安装顺序如下:           1.mysql-common_5.7.10-1ubuntu14 ...

  10. Phalcon的MVC框架解析

    1. mvc/simple从最简单的入手吧. 把一些能及时说明白的东西写在注释里了,需要扩展的知识列在下面. public/index.php <?php $loader = new \Phal ...