随笔分类 - TCPIP网络编程
摘要:今天在学习I/O多路复用的时候,发现可以使用GDB调试,而且还可以使用GDB调试某个进程的程序,瞬间涨姿势了~,总结一下常用的GDB调试方法。 用GDB调试程序 gdb 调试利器 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的
阅读全文
摘要:1. 文件描述符的本质是数组元素的下标 右侧的表称为i节点表,在整个系统中只有1张。该表可以视为结构体数组,该数组的一个元素对应于一个物理文件。 中间的表称为文件表,在整个系统中只有1张。该表可以视为结构体数组,一个结构体中有很多字段,其中有3个字段比较重要: 左侧的表称为文件描述符表,每个进程有且
阅读全文
摘要:为什么需要半关闭 为了保证数据的完全交换,应该留出足够长的连接时间,但是应该留出多长的时间呢? 比如客户端连接到服务器,服务器将一个文件传输给客户端,客户端收到后发送确认数据给服务器端 这时服务器端只需要连续的传输文件数据,而客户端却无法知道需要接收数据到何时,客户端也不可能无休止的调用输入函数,因
阅读全文
摘要:上下文切换详解 原文地址,译文地址,译者: 董明鑫,校对:郑旭东 上下文切换(有时也称做进程切换或任务切换)是指 CPU 从一个进程或线程切换到另一个进程或线程。进程(有时候也称做任务)是指一个程序运行的实例。在 Linux 系统中,线程就是能并行运行并且与他们的父进程(创建他们的进程)共享同一地址
阅读全文
摘要:I/O多路复用——epoll函数 select、poll、epoll区别总结 一、select、poll、epoll区别总结 1 本质上都是同步I/O 三者都是I/O复用,本质上都属于同步I/O。因为三者只是负责通知应用程序什么时候数据准备好了,实际的I/O操作还是在由应用程序处理;如果是异步I/O
阅读全文
摘要:IO复用、多进程和多线程三种并发编程模型 I/O复用模型 I/O复用原理:让应用程序可以同时对多个I/O端口进行监控以判断其上的操作是否可以进行,达到时间复用的目的。在书上看到一个例子来解释I/O的原理,我觉得很形象,如果用监控来自10根不同地方的水管(I/O端口)是否有水流到达(即是否可读),那么
阅读全文
摘要:linux网络编程之shutdown() 与 close()函数详解 参考TCPIP网络编程和UNP; shutdown函数不能关闭套接字,只能关闭输入和输出流,然后发送EOF,假设套接字为A,那么这个函数会关闭所有和A相关的套接字,包括复制的;而close能直接关闭套接字。 1.close()函数
阅读全文