- 博客(17)
- 资源 (1)
- 收藏
- 关注
转载 面向报文(UDP)和面向字节流(TCP)的区别之二
面向报文(UDP)和面向字节流(TCP)的区别面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。面
2016-03-29 15:13:46 793
转载 浅析TCP字节流与UDP数据报的区别
“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。上面的例子中,往水池里倒
2016-03-29 15:12:10 600
原创 线程
线程状态在一个线程的生存期内,可以在多种状态之间转换。不同操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态。但大体说来,如下几种状态是通用的: 就绪:参与调度,等待被执行。一旦被调度选中,立即开始执行。 运行:占用CPU,正在运行中。 休眠:暂不参与调度,等待特定事件发生。 中止:已经运
2016-03-29 13:44:17 484
原创 Boost-Asio的使用技巧
Boost.Asio的使用技巧基本概念Asio proactorI/O服务work类run() vs poll()stop()post() vs dispatch()buffer类缓冲区管理I/O对象socket信号处理定时器strand参考最近尝试使用了一下Boost.Asio,不知道是否
2016-03-11 16:51:48 797
原创 boost-io_service的工作方式
io_service在ASIO中有着举足轻重的地位置如果对io_service的实现不感兴趣可以选择性无视这篇文章。在开始说io_service之前,先介绍一下ASIO给我们提供的可用于TCP服务器开发的组件。boost::asio::ip::tcp::acceptor 用于监听与接受连接的类。boost::asio::ip::tcp::socket
2016-03-11 16:16:53 2363
转载 Boost-ioservices介绍
IO模型io_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。 asio::io_service io_service; asio::ip::tcp::socket socket(io_service);在asio框架中,同步的io主要流程如下:
2016-03-11 14:49:57 480
原创 boost-Timer介绍
同步Timerasio中提供的timer名为deadline_timer,它提供了超时计时的功能。首先以一个最简单的同步Timer为例来演示如何使用它。 #include #include int main() { boost::asio::io_service io; boost::asio:
2016-03-11 14:34:55 369
转载 boost-asio-buffer介绍
1. asio::buffer常用的构造方法asio::buffer有多种的构造方法,而且buffer大小是自动管理的1.1 字符数组 char d1[128]; size_t bytes_transferred = socket.receive(boost::asio::buffer(d1)); 1.2 字符向量
2016-03-10 17:45:16 537
转载 Boost-asio之四
下面介绍Boost.Asio的异常处理和计时器(timer)一 Exceptions Boost.Asio提供两种异常处理方式:通过try/catch的方式获取异常或者通过错误码的方式。 下面是一个通过try/catch的方式的一个例子:[cpp] view plain copy print?#include
2016-03-10 17:21:55 427
转载 Boost-asio之三
如果说io_service是Boost.Asio的大脑的话,那么它的成员函数dispatch和post就是它的左臂右膀了。post的主要作用是触发io_service执行post指定的handler并立即返回,post内部实现不会允许io_service调用handler方法。io_service保证handler一定会在调用run,run_one,poll,poll_one的某个线程中被执行。对
2016-03-10 17:21:16 629
转载 Boost-asio之二
上一篇介绍了Boost.Asio的一些特性,但是相对抽象和离散,这篇博客从Boost.Asio的基础知识一步步深入,读完之后对Boost.Asio会有全面的了解和掌握。Boost.Asio通过采用C++以及Boost库的语法特性,提供跨平台的异步网络IO能力。因此使用Boost.Asio需要基本的网络知识,C++、Boost知识。 io_service是Boost.Asio的核心
2016-03-10 17:18:47 447
转载 boost-asio之一
一 简介 Boost Asio ( asynchronous input and output)关注异步输入输出。Boost Asio库提供了平台无关性的异步数据处理能力(当然它也支持同步数据处理)。一般的数据传输过程需要通过函数的返回值来判断数据传输是否成功。Boost Asio将数据传输分为两个独立的步骤:采用异步任务的方式开始数据传输。 将传输结果通知
2016-03-10 15:59:07 446
转载 android开发 NDK 编译和使用静态库、动态库
在eclipse工程目录下建立一个jni的文件夹。 在jni文件夹中建立Android.mk和Application.mk文件。Android.mk文件:Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。详见附件中的Android.mk。 Application.mk文件
2016-03-10 11:45:04 446
原创 ndk编译生成静态库和动态库
在Android平台上,通过NDK可以编译NativeC程序,生成原生的NativeCode。从生成的代码的使用方式来看,主要有三种形式:Native Executable Binary,Shared Dynamic Library, 以及Static Link Library。接下来将分别介绍这三种类型的二进制文件的用途和生成时的MakeFile的设置。1. Static Link Li
2016-03-10 11:44:24 1559
转载 ubuntu下NDK环境搭建
1、安装make build工具执行以下命令:sudo apt-get install build-essential2、下载NDK官网下载页:http://developer.android.com/tools/sdk/ndk/index.html下载下来后,解压缩tar -xvf android-ndk-r9-linux-x86_64.tar.bz23 配置ND
2016-03-10 11:28:25 496
转载 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
引言 在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助。 本教程将分为五个步骤来完成Android开发环境的部署。第一步:安装JDK。第二步:配置Wind
2016-03-09 16:27:32 414 2
转载 Eclipse搭建Android开发环境(安装ADT,Android4.4.2)
使用Eclipse做Android开发,需要先在Eclipse上安装ADT(Android Development Tools)插件。1.安装JDK 1.7JDK官网http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载JDK7软件包,我安装的是1.7.0_55版本。安装完JDK后,配置下JDK环境
2016-03-09 16:25:30 283
详细深入VC编程内幕
2009-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人