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