- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 Boost.Asio C++ Chapter_4 tcp_async
/*异步客户端*///到这里事情会变得有点复杂,但是仍然是可控的。当然你也会拥有一个不会阻塞的应用//下面的代码你应该已经很熟悉:io_service service;#define MEM_FN(x) boost::bind(&self_type::x, shared_from_this())#define MEM_FN1(x,y) boost::bind(&sel
2017-03-30 16:23:07 502
原创 Boost.Asio C++ Chapter_4 tcp_sync
/*同步客户端*///同步客户端会以你所期望的串行方式运行;连接到服务端,登录服务器,然后执行连接循环,比如休眠一下,//发起一个请求,读取服务端返回,然后再休眠一会,然后一直循环下去……//因为我们是同步的,所以我们让事情变得简单一点。首先,连接到服务器,然后再循环,如下:io_service service;ip::tcp::endpoint ep( ip::address::fr
2017-03-30 16:21:01 510
原创 Boost.Asio C++ Chapter_3 udp_sync
//因为UDP不能保证所有信息都抵达接收者,我们不能保证“信息以回车结尾”。 //没收到消息,我们只是回显,但是没有socket去关闭(在服务端),因为我们是UDP。/*UDP同步回显客户端*/ip::udp::endpoint ep( ip::address::from_string("127.0.0.1"), 8001);void sync_echo(std::string msg)
2017-03-30 14:18:06 406
原创 Boost.Asio C++ Chapter_3 tcp_async
/*TCP异步客户端*/#define MEM_FN(x) boost::bind(&self_type::x, shared_from_this())#define MEM_FN1(x,y) boost::bind(&self_type::x, shared_from_this(),y)#define MEM_FN2(x,y,z) boost::bind(&self_t
2017-03-30 14:16:16 377
原创 Boost.Asio C++ Chapter_3 tcp_sync
/*TCP同步客户端*/size_t read_complete(char * buf, const error_code & err, size_t bytes){ if ( err) return 0; bool found = std::find(buf, buf + bytes, '\n') < buf + bytes; // 我们一个一个读取直到读到回车,不缓
2017-03-30 14:13:34 278
原创 Boost.Asio C++ Chapter_2
/*同步客户端例子*/using boost::asio;//创建io_service实例io_service service; //创建连接的地址和端口ip::tcp::endpoint ep( ip::address::from_string("127.0.0.1"), 2001);//把socket连接到你创建的地址和端口ip::tcp::socket sock(service
2017-03-30 11:56:23 387
原创 python:文件读写
读文件要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:>>> f = open('/Users/michael/test.txt', 'r')标示符'r'表示读,这样,我们就成功地打开了一个文件。如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:>>> f=open('/U
2017-03-22 15:02:02 439
原创 python:迭代器和列表解析
创建迭代器:对一个对象调用 iter() 就可以得到它的迭代器. 它的语法如下: iter(obj)iter(func, sentinel )如果你传递一个参数给 iter() , 它会检查你传递的是不是一个序列, 如果是, 那么很简单:根据索引从 0 一直迭代到序列结束.另一个创建迭代器的方法是使用类,一个实现了 __iter__() 和 next() 方法的
2017-03-22 13:37:10 482
原创 python:中dict和set
Dict:Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:names = ['Michael', 'Bob', 'Tracy']scores = [95, 75, 85]给定一个名字
2017-03-22 10:31:16 279
原创 python:标识符必须以字母或下划线开头,后面跟字母,下划线或者数字
标识符合法性检查,首先要以字母或者下划线开始,后面要跟字母,下划线或者或数字.这个小例子只检查长度大于等于 2 的标识符idcheck.py#!/usr/bin/env python'''idcheck.py -- checks identifiers for validity'''import string # string utility module# creat
2017-03-21 18:42:05 18428
原创 python:对象类型
所有的 Python 对像都拥有三个特性:身份,类型和值 1、身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数 id()来得到。这个值可以被认为是该对象的内存地址。 2、类型对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数 type()查看 Python 对象的类型。因为在 Python
2017-03-21 14:37:44 468
原创 python:列表list和元组tuple
列表和元组都可以当成普通“数组”,列表和元组可以存储不同类型的对象列表中元素用"[ ]"中括号,里面元素可以修改;元组中元素用"()"小括号初始化后不能修改the_list.py#!/usr/bin/env python3# -*- coding: utf-8 -*-# the_list.pyclassmates = ['Michael', 'Bob', 'Tracy']
2017-03-21 09:58:29 262
原创 python:核心编程中makeTextFile.py和readTextFile.py
核心编程中写文件和读文件makeTextFile.py例子#!/usr/bin/env python3'''makeTextFile.py --- create text file'''import osls = os.linesep#get filenamewhile True: fname = input("please input file name:\n
2017-03-21 09:31:47 560
转载 使用 Sysprep 工具自动实现 Windows XP 的成功部署
使用 Sysprep 工具自动实现 Windows XP 的成功部署运行 Sysprep 工具的要求要使用 Sysprep工具,计算机的硬件和相关设备必须满足下列要求:· 参考计算机和目标计算机必须具有兼容的 HAL。例如,基于高级可编程中断控制器 (APIC)的 MPS(多处理器系统)必须使用相同的 APIC HAL。基于标准 HAL可编程中断控制器(P
2015-12-10 15:24:32 1353
原创 TCP/IP TIME_WAIT和CLOSE_WAIT
1.TIME_WAIT TIME_WAIT 是主动关闭 TCP 连接的那一方出现的状态,系统会在 TIME_WAIT 状态下等待 2MSL(maximum segment lifetime )后才能释放连接(端口)。通常约合 4 分钟以内。 进入 TIME_WAIT 状态等待 2MSL 的目的:确保连接可靠地关闭,避免产生套接字混淆(同一个端口对应多个
2015-11-27 15:05:26 327
原创 Linux下GDB远程调试技术
Linux下GDB远程调试技术1. 远程调试的意义1. 软件只在特定机器环境下出错,可以通过远程调试查找原因2. 与第三方合作,不方便提供代码,但是又必须解决在合作方机器上出现的特定BUG3. 嵌入式开发2. 注意事项1. 要gdb支持远程调试,则必须在远程机器上面安装gdbserver,2. 要求两边的gdb版本必须一
2015-11-26 22:56:49 1592
原创 Self-confidence
自信——顾城你说再不把必然相信再不察看指纹攥起小小的拳头再不相信眯着眼睛独自在落叶的路上穿行让那些悠闲的风在身后吃惊你骄傲地走着一切已经决定走着好像身后跟着一个沮丧得不敢哭泣的孩子他叫命运
2015-11-25 21:45:40 403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人