
网络编程
文章平均质量分 66
xiaoyutao96
这个作者很懒,什么都没留下…
展开
-
信号量
信号量的学习1. Posix 的信号量sem_open()、sem_close()、sem_unlink()函数sem_t * sem_open(const char *name, int oflag, … )不定参为 /* mode_t mode, unsigned int value */ oflag可以为O_CREAT或者O_CREAT|O_EXCL, 如果指定了O_CREAT原创 2017-05-25 00:42:52 · 557 阅读 · 0 评论 -
I/O复用总结
一.什么是I/O复用?假设我们拥有1000个线程进行读写操作,但是我们大部分时间都耗费在等待的时间上,同时1000个线程对资源占用和CPU的开销很大,因此使用一个线程来监控1000个读写操作符的状态,当其中某一个描述符状态就绪时,用一个线程去处理已经就绪的状态,这样对资源占用和CPU的开销就会十分少了。 I/O多路复用:多路网络连接复用一个IO线程。同时需要指出I/O复用虽然可以监听多个文件描述原创 2017-10-11 17:24:40 · 544 阅读 · 0 评论 -
服务器基本框架
服务器编程框架 模块 单个服务器程序 服务器机群 I/O处理单元 处理客户链接,读写网络数据 作为接入服务器,实现负载均衡 网络存储单元 本地数据库、文件或缓存 数据库服务 请求队列 各单元之间的通信方式 各服务器之间的永久TCP连接 请求队列是各单元之间的通信方式的抽象,通常被实现为池的一部分。对于服务器机群而言,请求队列是各台服务器之间预先建立的、原创 2017-11-14 21:49:23 · 555 阅读 · 0 评论 -
进程基础总结
进程概念 正在执行中的程序。进程终止 有八种方式使进程终止:五种正常返回,三种异常终止。 五种正常返回为: 1. 从main函数返回; 2. 调用exit; 3. 调用_exit或_Exit; 4. 最后一个线程从其启动例程返回; 5. 从最后一个线程调用pthread_exit; 三种异常终止方式为: 6.原创 2018-01-23 15:37:19 · 152 阅读 · 0 评论 -
多线程编程
线程模型创建线程和结束线程 函数名 返回值 作用 pthread_create 成功返回0,错误返回错误码 创建线程 pthread_exit 永远不会失败 确保线程安全退出,其参数向线程回收者传递退出信息.(注意不可使用exit()) pthread_join 成功返回0,错误返回 回收线程,函数会阻塞至被回收线程原创 2017-11-05 16:28:12 · 176 阅读 · 0 评论 -
网络编程
Socket编程基本模型基本API#includeint socket(int domain, int type, int protocol);//创建一个套接字用于通信//domain :指定通信协议族(protocol family)//type:指定socket类型,流式套接字SOCK_STREAM,数据报套接字SOCK_DGRAM,原始套接字SOCK_RAW/原创 2018-01-29 14:46:48 · 258 阅读 · 0 评论 -
管道总结
管道分类匿名管道命名管道匿名管道原理:匿名管道其本质就是内核缓冲区(内核所划分的一片内存),磁盘上不存在对应的文件;其大小一般为4K;其实现时使用一个环形队列。特点:管道具有阻塞的性质。半双工的通信方式。适用于亲缘进程间。管道操作使用pipe(int pipefd[2])函数, 0读1写。读操作 有数据的情况下: re原创 2018-01-23 16:31:35 · 190 阅读 · 0 评论 -
粘包问题
流协议与粘包TCP是个流协议TCP是基于字节流传输的,只能维护发出去多少,确认多少,没有维护消息与消息之间的边界,因此可能导致粘包问题。粘包问题解决方法是在应用层维护消息边界。 如图反应了包在网络中的传输情况。我们无法预知TCP接收缓冲区中收到的数据原本的边界是什么。产生原因TCP是一个字节流、无边界的。对于客户端和服务端来说,一次读操作,不保证能读完数...原创 2018-04-23 19:27:57 · 256 阅读 · 0 评论