现在位置 >首页 > C++
0℃
2012年12月23日 C++ ⁄ 被围观 3,202 次+
最近在研究XMPP协议,client端用的是开源的Gloox库,server使用gtalk server和OpenFire。昨天想实现XMPP的文件传输,于是仔细看了下XMPP的文件传输协议,结合协议和代码,算是把标准XMPP文件传输协议摸清楚了。下面是一些要点总结。 XMPP主要支持两种形式的文件传输协议:SOCKS5 Bytestreams和 In-Band Bytestreams ,后者效率有问题,不建议使用。 Sock5 Bytestreams支持点对点传输和通过Proxy中转。 标准XMPP,使用Disco来发现代理服务器,所以即使发送方没有配置proxy server也没有问题(理论上哈)。不错的...
阅读全文

Wopus问答

0℃
项目背景: 在自己的电脑装了linux 虚拟机,想要在外网也能ssh到虚拟机进行开发,由于路由ip是动态ip,想到网上找一些动态dns域名解析,但是效果不大好,所以想到自己进行外网ip的管理。   想法: 用C++写一个界面客户端,随系统启动,定时访问自己的cgi,更新自己的外网ip;这个客户端能支持简单的几个操作:启动,退出,设置更新间隔,是否随系统启动等。 写一个cgi,接收client请求,并记录最新的外网ip到数据库; 写另外一个cgi,在其他地方访问能列出当前最新的外网ip,以及历史ip列表。 可以再写一个跳...
阅读全文
0℃
2012年05月14日 C++, linux, 操作系统 ⁄ 被围观 4,803 次+
首先安装ctags,安装过程网上很多,就不多讲,安装之后执行ctags -R,就可以在本项目内实现代码跳转了,但不能跳转到不是在本项目的代码中定义的tag。例如在上面的图中,本地定义了一个类A,在main函数中定义了一个A类的对象,我们可以按“Ctrl+]”组合键跳转到class A那一行。然后可以按“Ctrl+O”跳转回来。 如果想实现跳转到非本项目的tag,则必须让Vim知道这些tag在哪。刚才的项目在/home/user/code/目录下,现在假设又有一个项目在/home/user/program/下,那么我们需要在此项目下生成program这个项目的tags文件(...
阅读全文
0℃
2012年05月13日 C++, linux, 操作系统 ⁄ 被围观 2,323 次+
概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些 Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile 了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别...
阅读全文
0℃
2012年05月13日 Android, C++, java, 操作系统, 终端开发 ⁄ 被围观 3,457 次+
protobuf 项目主页:http://code.google.com/p/protobuf/ 下载:http://code.google.com/p/protobuf/downloads/list protobuf-2.4.1.tar.gz 解压后进入protobuf-2.4.1目录进行安装: 1、./configure(注:默认可能会安装在/usr/local目录下,可以加--prefix=/usr来指定安装到/usr/lib下,可以免去路径的设置,路径设置见Linux命令pkg-config) ./configure --prefix=/usr/local/protobuf 2、make 3、make check 4、make install(需要超级用户root权限) 二、使用 1、写proto文件,定义消息具体格式。如:helloworld...
阅读全文
0℃
2012年05月13日 C++, linux, 操作系统 ⁄ 被围观 2,763 次+
protobuf的Demo程序是 C++版本的protubuf有几种serialize和unSerialize的方法: 方法一: 官方demo程序采用的是 // Write the new address book back to disk. fstream output(argv[1], ios::out | ios::trunc | ios::binary); if (!address_book.SerializeToOstream(&output)) { cerr << "Failed to write address book." << endl; return -1; }   // Read the existing address book. fstream input(argv[1], ios::in | ios::binary); if (!input) { cout << argv[1] << ": Fi...
阅读全文
0℃
2012年05月11日 Android, C++, java, 操作系统, 终端开发 ⁄ 被围观 2,426 次+
原文:http://www.wuzesheng.com/?p=1258 本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf。因此,本文首先会介绍一些google protobuf相关的内容,让读者朋友对google protobuf有一个初步的印象,然后,再开始进入正题—-深入浅出地介绍google protobuf中用到的编码规则。下面言归正传,开始今天的话题。 1. Google-ProtoBuf是什么 ProtoBuf,全称是Protocol Buffers, 它是谷歌内部用的一种高效的、可扩展的对结构化数据...
阅读全文
0℃
2012年05月11日 Android, C++, java, 操作系统, 终端开发 ⁄ 被围观 2,489 次+
  ProtoBuf,全称是Protocol Buffers, 它是谷歌内部用的一种高效的、可扩展的对结构化数据进行编码的格式规范。谷歌自己内部很多程序之间的通信协议都用了ProtoBuf。 下面介绍的是使用Java ProtoBuf的基本步骤: 1.http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载 2.下载一个protobuf-java-2.4.1.jar文件(注意,要与你刚才下的proto.exe版本相同,否则可能出现编译通不过现象) http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.protobuf/protobuf-java/2.4.1 3...
阅读全文
0℃
2012年03月30日 C++, linux, 操作系统 ⁄ 被围观 2,427 次+
几个关键字: 进程结构task_struct;系统task_stuct数组; 进程状态: 进程时间片; 进程切换时,系统需要做那些保存操作; 进程创建过程,fork(); 工作队列; 进程调度。
阅读全文
0℃
本章完全是基础知识了,归纳下几点: 在不同的CPU体系结构上,C语言的数据类型所占的空间是不一样的; 为了方便移植,内核中很多数据类型由typedef声明; 内存页面大小; 字节对齐方式:低字节优先&高字节优先; 内核通用链表; 行内汇编的格式; 内核时间延迟;
阅读全文
×
腾讯微博