自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 网络编程杂项 (持续更新)

By [email protected]——记录一些小问题,陷阱1. 调用bind时,如果地址是0(就是INADDR_ANY那个宏),就绑定本地所有IP,如果端口是0,就随机选择一个可用的端口(想要知道具体端口,可以调用getsockname查看)2. send recv 与 read write 的区别主要在于:send 和 recv 可以设置一些 flag,而 read 和 write 则没有3. 阻塞与非阻塞:调用 API 时是否需要等待完成时才返回4. send/sendto 的一般返回情

2011-05-01 14:20:00 1310

原创 关闭终端后,后台作业退出的分析

其实三两步就可以搞定的,但是因为纠结于到底是谁发出的SIGHUP,耗费了不少时间。下面是”纠结“的过程:现象:./a.out & 这种方式运行,关闭终端后,a.out也会终止分析:首先,写了个简单的脚本看是什么信号导致的后台作业退出。a.pl:#! /usr/bin/perl -w$SIG{HUP} = sub{print "HUP/n"};$SIG{KILL} = sub{print "KILL/n"};$SIG{TERM} = sub{print "TERM/n"};while (1){    slee

2011-04-05 11:55:00 2295 3

原创 linux 系统相关的一些小知识点(持续更新)

by [email protected]. 先看 man 手册,当然一般大家不会从根目录去找,而是喜欢直接 man xxx。但是如果是一些小东西的话,这样是找不出来对应手册页的。    例如你想找到错误码 ENOBUFS 的详细解释,直接 man ENOBUFS 是找不到的,而是应该先 man 2 socket,看 see also 里面指定的手册页。0.5 -- google baidu1. 获取最新版本的软件:直接google到官方下载地址后,进入官方页面浏览即可找到(一些小工具可以再 ww

2011-05-07 08:58:00 743

原创 Unix domain socket 的一些小结

By [email protected]. unix域的数据报服务是否可靠2. STREAM 和 DGRAM 的主要区别3. SO_SNDBUF 和 SO_REVBUF4. 缓冲队列的长度

2011-04-24 14:27:00 21837 2

原创 mmap 还是 shmget ?

By [email protected]类Unix系统的共享内存有好几种机制,网上一搜就一大堆了,下面是几个我认为介绍的还不错的 : )http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.htmlhttp://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.htmlhttp://blog.csdn.net/nellson/archive/2010/03/20/5398

2011-04-16 21:12:00 11284 2

原创 Epoll 使用示例

By [email protected]相关的背景知识,可以在网上轻松获取到,这里仅列一个示例的源码#if 0作者:[email protected]说明:一个简易的 TCP/UDP - epoll 使用样例,尽量简化了逻辑日期:2011-04-11#endif#include #include #include #include #include #include #include #include #include /* For KeepAlive */#in

2011-04-16 15:58:00 2818

原创 TCP 情况下,TIME_WAIT 和 CLOSE_WAIT 状态

TCP下的各个状态转移,认真分析一遍就会对内在机理有个大致了解。1. TIME_WAITTIME_WAIT 是主动关闭 TCP 连接的那一方出现的状态,系统会在 TIME_WAIT 状态下等待 2MSL(maximum segment lifetime )后才能释放连接(端口)。通常约合 4 分钟以内。进入 TIME_WAIT 状态等待 2MSL 的目的:确保连接可靠地关闭,避免产生套接字混淆(同一个端口对应多个套接字)。服务器产生大量 TIME_WAIT 的原因:服务器的主动关闭操作较多,可能是在清理长期

2011-04-12 21:56:00 2582

原创 daemon进程的简介

一个进程变为daemon进程后,能获得一个与父进程无瓜葛的环境(工作目录、文件描述符、信号处理...)。所以daemon的功能我们可以自己简单实现(linux系统也提供了一个daemon函数):signal(SIGALRM, SIG_IGN);signal(SIGINT,  SIG_IGN);...if (fork()) {    exit(0);}setsid创建新会话关闭不需要的文件句柄修改工作目录和文件掩码    chdir("/");    umask(0);

2011-04-05 15:11:00 984

空空如也

空空如也

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

TA关注的人

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