网络编程
牛气的潘小花
这个作者很懒,什么都没留下…
展开
-
常用socket函数详解
常用socket函数详解关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确。每次都查半天,经常烦恼于此。索性都弄得清楚、通透,并记录下来,一来便于自己记忆,再者以防日后查阅、回顾。 主要介绍:socket、bind、listen、connect、accept、send、sendto、recv、recv转载 2015-11-30 21:43:28 · 273 阅读 · 0 评论 -
同步异步和阻塞非阻塞
Windows I/O模型、同步/异步、阻塞/非阻塞同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之转载 2015-12-02 11:59:38 · 316 阅读 · 0 评论 -
socket阻塞与非阻塞,同步于异步
socket阻塞与非阻塞,同步与异步1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S转载 2015-12-02 13:19:29 · 223 阅读 · 0 评论 -
僵尸进程 wait waitpid
请先看前一篇关于exit函数于_exit函数的区别:http://blog.csdn.net/ll2323001/article/details/7392615 如果我们已经了解了父进程和子进程的概念,并已经掌握了系统调用exit的用法,但可能很少有人意识到, 在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程转载 2016-01-22 20:47:24 · 281 阅读 · 0 评论 -
wait和waitpid的区别
问题: 一个unp中第五章的例子:有5个客户端几乎同时向服务器发送终止连接,这时在服务器端将几乎同时产生SIGCHILD信号,然而信号在内核中是不排队的,信号处理函数只执行一次(我的理解是5个信号几乎同时到达,当第一个信号被处理时,其他4个信号是未决的,当信号处理函数处理完第一个到达的信号后,由于没有产生信号,信号处理函数将不会被再次调用)。那么在目前情况下,父进程怎样才能捕获转载 2016-01-22 20:57:28 · 330 阅读 · 0 评论 -
SIGPIPE信号详解
SIGPIPE信号详解当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有cor转载 2016-01-23 15:40:53 · 297 阅读 · 0 评论 -
linux select函数详解
在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)转载 2016-01-29 14:52:19 · 246 阅读 · 0 评论