Category Archives: Linux

Linux下socket非阻塞的一些技巧

在Linux下,connect()建立连接,-1为失败,但是-1不一定就是完全失败!
-1的情况下,有的是因为非阻塞造成的,就是在error中设置了对应的出错情况,例如EINPROGRESS,EAGAIN等可以认为是“非致命错误”,认为是可以接受的,这种只是导致暂时阻塞等情况。
所以可以如下使用
int ret = connect(...);
if(!ret || noFatalError())
{
  //认为是成功的
}
bool nonFa[......]

继续阅读

CentOS很快的一个源

转载自:http://www.diybl.com/course/6_system/linux/Linuxjs/20081213/153625.html
CentOS USTC mirror

http://centos.ustc.edu.cn/centos/

安装后请按照以下步骤修改CenOS-Base.repo,以后就可以方便的用yum安装软件了.

cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.r[......]

继续阅读

Linux设置socket客户端的连接超时

非常感谢原作者:http://hi.baidu.com/ganss/blog/item/1c69d3139036a8836538dba0.html
 
原来我们实现connect()超时基本上都使用unix网络编程一书的非阻塞方式(connect_nonb),今天在网上看到一篇文章,觉得很有意思,转载如下:
读Linux内核源码的时候偶然发现其connect的超时参数竟然和用SO_SNDTIMO操作的参数一致:

  File: net/ipv4/af_inet.c
[cpp]
t[......]

继续阅读

Java中调用gcc编译c/c++文件(Linux)

    准备把Exceed OJ用Java 重新开发,第一个棘手的问题就是:如何调用gcc编译文件。
    google了5分钟发现资料不多。
   
    调用外部程序是这个样子的。
    Runtime.getRuntime().exec();
    返回一个Process 类型变量,例如p[......]

继续阅读