李波's profilekpld's SpacePhotosBlogLists Tools Help

Blog


    4/21/2008

    查找Quick Reference

    在google中进行如下搜索:(以python为例)
    python quick reference filetype:pdf
     
    4/18/2008

    带颜色的less命令

    默认的less不带颜色输出。找到一个可以带颜色输出的less:
    /usr/share/vim/vim64/macros/less.sh
     
    注意:vimrc里面的syntax on必须去掉注释
    4/11/2008

    Linux启动多个X

    startx默认以display :0.0启第一个X,通过传递参数给Xserver可以启多个X:
    # startx -- :1.0
    # startx -- :2.0
    ...
    然后用Ctrl-Alt-F7/F8...切换
    4/9/2008

    bash的冒号用法

    冒号(:)命令是bash的内建命令,通常把它看作true命令。bash的help解释(help :)为:No effect; the command does nothing.  A zero exit code is returned.(没有效果,该命令是空操作,退出状态总是0)。
    用途
    1、注释
    : this is comment
    : ' this is a multiple
    lines comment.'
    将注释作为参数传递给冒号命令, 因为没有输出所以可以当作注释阿,够巧妙吧。
    2、清空文件
    : > file

    Unix编程的port占用问题

    在Linux下编写网络程序,当网络服务进程关掉的时候,再立即启动该服务,会有错误提示说port被占用了,监听失败。

    《unix 网络编程》第二章 2.7介绍了TIME_WAIT状态,这个状态时间是TCP里最长的,是二倍MSL时间,大约在1-4分钟。

    这样的问题是可以解决的,使用SO_REUSEADDR    enables local address reuse,可以在TIME_WAIT状态下使用相同的PORT。
    int reuser_addr = 1;
     ::setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const void*)&reuse_addr, sizeof(reuse_addr));
    SO_REUSEADDR 的用途除了上面这种情况,还有三种分别是:
    *)在多网卡的时候,多进程可以使用不同IP,相同PORT。
    *)与上条差不多,在单进程使用使用不同IP,相同PORT。
    *)在UDP广播的时候,可以在相同IP和PORT下使用,TCP则不行。