发布时间:2013-06-07 13:03:51
前言: Bind(): Address already in use引出来的问题:前一篇文章《linux socket 编程示例》在用CTRL+C结束进程后,再启动时会出现:Bind(): Address already in use的错误提示,并导致程序直接退出; 用$netstat -an |grep 8080或$ps aux |grep 8080都还能看到刚才用Ctrl+C“强制结束”了的进程,端口还是使用中,只能用kill结束进程,才能收回端口,很是麻烦。在代码中添加:int optval;optval = 1;ret = setsockopt( sock, SOL......【阅读全文】
发布时间:2013-06-07 12:59:44
功能描述:获取或者设置与某个套接字关联的选项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议.........【阅读全文】
发布时间:2013-06-07 12:44:36
接上文:http://blog.chinaunix.net/uid-26000296-id-3755264.html三、异步阻塞模式另外一个阻塞解决方案是带有阻塞通知的非阻塞 I/O。在这种模型中,配置的是非阻塞 I/O,然后使用阻塞 select 系统调用来确定一个 I/O 描述符何时有操作。使 select 调用非常有趣的是它可以用来为多个描述符提供通知,而不仅仅为一个描.........【阅读全文】
发布时间:2013-06-07 12:37:20
简介图 1. 基本 Linux I/O 模型的简单矩阵 每个 I/O 模型都有自己的使用模式,它们对于特定的应用程序都有自己的优点。本节将简要对其一一进行介绍。一、同步阻塞模式在这个模式中,用户空间的应用程序执行一个系统调用,并阻塞,直到系统调用完成为止(数据传输完成或发生错误)。/* * \brief * tc.........【阅读全文】
发布时间:2013-06-07 00:53:29
为了节省篇幅所有测试都忽略错误检查SIGABRT: 调用abort函数时产生此信号。默认终止进程,可捕捉 6 void sig_abort(int signo){ 7 printf("get signal:%s\n",strsignal(signo)); 8 } 9 10 int main(void){ 11 .........【阅读全文】