在上一篇文章 《socket编程——一个简单的例子》 http://blog.youkuaiyun.com/wind19/archive/2011/01/21/6156339.aspx 中写了一个简单的tcp socket通信程序,可以进行数据的交互,但有一个问题是这个程序是阻塞的,任何socket函数都要等返回后才能进行下一步动作,如果recv一直没有数据,那么就一直不会返回,整个进程就阻塞在那。所以我们要进行改造一下,让程序不再阻塞在那,而是在有数据到来的时候读一下数据,有数据要写的时候发送一下数据。
设置阻塞模式的函数一般由两个fcntl 和 ioctl
先放源程序,服务器端还是阻塞的,客服端改成非阻塞的,只是作为一个例子