
网络编程技术
_KJ
不想做个咸鱼
展开
-
I/O-- 阻塞、非阻塞,同步、异步的概念及其区别
阻塞(blocking)、非阻塞(non-blocking):可以简单理解为需要做一件事能不能立即得到返回应答,如果不能立即获得返回,需要等待,那就阻塞了(进程或线程就阻塞在那了,不能做其它事情),否则就可以理解为非阻塞(在等待的过程中可以做其它事情)。同步(synchronous)、异步(asynchronous): 你总是做完一件再去做另一件,不管是否需要时间等待,这就是同步(就是在发出一...转载 2018-10-11 09:46:02 · 1227 阅读 · 0 评论 -
I/O复用
什么是I/O复用:程序设计过程中有时候会对多个输入进行操作,例如标准输入或者多个socket。那么如果在对某个进行处理的时候阻塞住的话,另外的输入进来的话会得不到及时的处理。(比如客户端程序调用fgets/cin的时候会阻塞在标准输入的地方,此时如果有监听的socket请求连接的话是得不到及时处理的)。对于这种情况就需要当内核发现我们指定的IO条件就绪的时候主动的通知进程。这种行为就是IO复用...原创 2018-10-12 12:00:55 · 182 阅读 · 0 评论 -
简述地址转换协议inet_ntoa&inet_addr
inet_ntoa():linux下:函数声明:char *inet_ntoa(struct in_addr in);功能:将一个32位网络字节序的二进制IP地址转换成相应的点分十进制的IP地址(返回点分十进制的字符串在静态内存中的指针)。个人理解,将ip地址转化成字符串,便于输出所在头文件:<arpa/inet.h>/* 返回指向点分十进制数串的指针 */ch...原创 2018-10-22 21:51:44 · 797 阅读 · 0 评论 -
简述C语言fork()函数用法:
首先了解 fork 的功能:fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:1)在父进程中,fork返回新创建子进程的进程ID;2)在子进程中,fork返回0;3)如果出现错误,fork返回一个负值;实例:/*linux下:*/#include <stdio.h>#include <unistd.h> i...原创 2018-10-23 01:20:59 · 40828 阅读 · 2 评论