自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (3)
  • 收藏
  • 关注

原创 libcurl使用问题

今天遇到一个libcurl的使用问题,为了

2014-06-18 20:09:01 838

原创 关于苹果推送的问题

最近写程序给苹果推送服务器APNS发消息。具体方式在它的官网上说的很清楚。在开发过程中遇到一个问题,这个问题和APNS的反馈机制有关。流程是这样的:创建一个连接APNS服务器的tcp连接,然后将一定格式的多条消息打包发给APNS,如果这些没有什么错误的话,APNS是没有反馈的。(这不像给WNS,WNS给每个http格式封装的消息都有个应答,告知成功与否)。如果APNS发现某个消息出现错误(比如To

2013-07-02 17:04:03 3415 4

原创 64位机 ptrace问题

今天看书看到ptrace这个函数。有人说功能强大,是strace等跟踪工具和gdb调试器的基石。我按网上的资料写个测试程序,发现点问题。syscallID = ptrace(PTRACE_PEEKUSER, pid, ORIG_EAX*4, NULL);这是网上某人写的代码。我把它放到64位linux上编译,发现编译不过,说找不到ORIG_EAX。我明明#include 了,怎么回事,

2013-06-30 18:58:13 1649 3

原创 关于TCP带外数据

一、读UNP,看到24章的带外数据。书上还给出了一个小例子 ------ 一个服务端接收普通数据和带外数据,另外有个客户端发送普通数据和带外数据。接收端的普通数据和带外数据是分开接收的。普通数据就用普通的recv,而带外数据是在SIGURG信号处理函数里面用recv(... MSG_OOB)接收的。我冒出个想法,在SIGURG信号处理函数里面,如果我在recv( MSG_OOB)之前用普通的r

2013-06-14 11:45:00 1093

原创 UDP伪首部

今天看TCP详解,看到UDP首部中有个校验和,它在计算的时候要加上伪首部的。书上对这个只是简略的说了下。伪首部中有源ip和目的ip,以及协议类型。这么做的目的是:收到这个udp的对端也做同样的校验和计算,如果接收端IP层传递了错误的数据报到UDP层的话(目的ip不是本机ip或者协议类型不对),校验和就会不一致,丢弃包。但是,有两点我没有明白。1. 为什么伪首部中还有源IP地址呢? 2.

2013-06-12 18:23:54 4688 1

原创 关于标准输入输出的缓存

APUE上说当标准输入标准输出的对象时终端时,行缓存。但是对于下面代码:printf("%% ");fgets(buf, MAXLINE, stdin);第一行执行完,马上就输出%提示符了。那个习题问为什么。我试验了下还真是那么回事,为什么呢?我想了会,不得其解。不过隐约觉得应该和行缓存的那两个限制有关。APUE上说了对行缓存的两个限制。第一个好理解,只要填满缓存,即使没有一个换行符,也

2013-06-02 22:38:19 1141

原创 fgetc为什么返回int

看APUE,有道题问,下列代码在一些机器上运行正确,而在另外一些机器上不正确,解释为什么。int main(){ char c; while( (c = getchar()) != EOF) putchar(c);}首先看一下,为什么getchar()要返回int?getchar()读取一个字符,这个字符可以是任何值。假如返回unsigned char

2013-06-02 21:08:20 1786 1

原创 关于网络编程中的backlog

看《Unix网络编程》,15章有个习题,说当backlog分别等于0,1,2...14时,系统内核真正的已完成队列长度极限是多少。我就写了个小程序来验证。系统:redhat 5 server 64程序:服务端,客户端在一台机器上。服务端listen后,不去accept,让完成三次握手的tcp套接字继续呆在已完成队列。客户端持续创建新socket去connet,并且connect超时

2013-05-23 12:25:26 1037

原创 关于connection reset by peer问题

今天在验证UNP(v3)第五章中的5.12例子。例子是这样的:一个回射服务器,一个客户端。客户端从终端接收输入,然后发给服务器。服务器只是简单的把字符串返回给客户端。然后客户端再显示到终端。书上让我们这样做:服务器和客户端正常连接后,把服务端子进程kill掉,这样的话,服务端会发送一个Fin包到客户端,而客户端收到这个Fin包后立即响应Ack包。但是客户端此时正阻塞在fgets上面。接着,我们随便

2013-05-13 17:31:54 1578

原创 sh和bash一些小差别

今天在写一个shell脚本时,用到了选取子串。网上有个哥们做了很好的总结。http://my.oschina.net/aiguozhe/blog/41557。其中他说到选取子串 的方法:str="abcdef"expr substr "$str" 1 3 # 从第一个位置开始取3个字符, abcexpr substr "$str" 2 5 # 从第二个位置开始取5个字符, bcde

2013-04-02 23:32:40 703

原创 shell 脚本随机数问题

今天,为了练习一个脚本,需要得到一个范围内的随机数。遇到几个问题:1. bin/sh里没有$RANDOM, 而是在bin/bash。(ubuntu12.04)2. 如果随机数范围小于$RANDOM, 可用echo "$min + $RANDOM%($max-$min)"。但是如果范围大于RANDOM,这个式子就不适用了。而要用echo "$min + $RANDOM / $RANDOM

2013-03-31 17:00:03 1462

原创 关于gdb调试

一、代码窗口混乱以前在用gdb调试的时候,一般用在gdb里面打"-"在上方窗口显示源码,而不是用list显示。但是总遇到个问题,源码窗口里老是出现重叠混乱。也上网搜过,但是一直没找到好办法。这个问题使得我感觉gdb调试效率低,改用codelite。现在公司里编程是在字符界面Redhat开发机上。必须要用gdb调试了。今天在网上搜到了解决办法:gdb里面在窗口列出源码用layout src, 如

2013-03-20 09:46:54 862

原创 fgetc库函数使用

fgetc函数从文件流里取出下一个字节并把它作为一个字符返回。当它到达文件尾部或者出现错误时,它返回EOF。怎么区分这两种情况呢?用ferror或feof来判断。(这段话来自经典书籍Linux程序设计)。int c;while((c = fgetc(fp)) != EOF) fputc(c, out);if(!feof(fp)) // ferror(fp), 这里判断{

2013-03-17 18:18:08 990

c++实现大数计算问题

c++程序,实现大数计算djdjgjgjsd;fk;dsjfsfksdfksdjfkj

2008-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除