网络编程
文章平均质量分 78
MoMo的奋斗
这个作者很懒,什么都没留下…
展开
-
网络编程问题集锦
1. 进程核线程有什么区别?进程是一个应用程序一次执行过程,可申请和拥有资源,是一个活动的实体。一个进程可以包含若干线程,通常把进程作为分配资源的基本单位,线程作为独立运行和调度的基本单位。线程调度开销小子进程和父进程有不同的代码和数据空间,线程则共享数据空间。每个线程有子己执行堆栈和程序计数器为其执行上下文。进程间相互独立,同一进程的个线程间共享。进程间通信IPC,线程间可直接读写进程数据原创 2016-07-23 10:05:02 · 333 阅读 · 0 评论 -
多进程编程
进程间通信管道管道用管道联系标准设备有名管道扩展1. 进程间通信1. 管道如果要进行全双工通信,需要建立两个管道管道没有名字,传送的事无格式的字节流,大小受限制在include/linux/limits.h中规定 #define PIPE_BUF 4096, 也就是一次管道读写最多传送512字节read(int _fd, void* buf, size_t _nbytes); //原创 2016-07-25 23:25:50 · 280 阅读 · 0 评论 -
多线程编程
术语了解1. 术语同步原语 (synchronization primitives)2. 了解Observer模式观察者模式,第一了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题对象。boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。 STL集中在算法部分,而boost包含了不少工具原创 2016-07-25 23:26:32 · 197 阅读 · 0 评论 -
c编程
内存管理常识内存管理函数常用内存调试工具文件操作时间操作异常1.内存管理1.常识用size命令可以查看二进制可执行文件结构情况一个正在运行中的C编译程序占用内存分为:代码区 : 存放CPU执行的指令,该区域是共享的,只读 ,初始化数据区 : 包含初始化的全局变量,静态变量,常量,未初始化数据区 (BBS区) : 全局未初始化的变量,在运行时改变值堆区:向原创 2016-07-25 23:29:07 · 726 阅读 · 0 评论 -
I/O多路复用
非阻塞I/O,recvfrom系统调用后,内核会立马返回,进程可以干点其他事,然后再发起系统调用重复上面的过程,拷贝数据的整个过程进程仍然是阻塞的阻塞I/O,进程发起系统调用后,在没有数据准备好时,进程会被阻塞,知道数据从内核复制到用户控件完成多路复用I/O,可以同时等待多个socket,当有一个socket数据准备好时就返回,然后由进程发起系统调用,将数据从内核拷贝到用户空间,此过程进程是阻塞原创 2016-07-30 17:10:28 · 370 阅读 · 0 评论 -
python网络编程
使用时需要导包import socketsocket使用时都被绑定到一个特定IP地址和端口端口0~65535, 小于1024的都是网络服务中所保留的,socket.gethostname()返回运行程序所在的计算机的主机名:socket.gethostbyname(name) 尝试将给定的主机名解释为一个IP地址socket.gethostbyname_ex(name),它返回一个包含三个原创 2016-08-08 15:36:11 · 393 阅读 · 0 评论 -
Libevent学习
简述目的构成库说明内存管理使用创建event_base说明建立检查event_base后端的方法释放设置event_base优先级在fork之后重新初始化event_base与事件循环一起工作运行循环事件简述Libevent适用于编写告诉可一直非阻塞IO应用的库目的可移植性速度可扩展性方便构成:原创 2016-08-19 10:55:35 · 872 阅读 · 0 评论