linux
文章平均质量分 77
吾观风月
心事跋山涉水,落下温柔几许。
展开
-
在linux下实现简单聊天系统(一)项目基本框架内容
项目主要实现的功能:注册,登陆,获取好友列表,一对一聊天,消息群发,离线消息缓存,下线。需要的工具:libevent,json,mysql,memcached开发平台:vmware基本项目思路: 客户端:利用多线程实现,采取输入命令的方式让用户选择服务类型,根据不同的服务类型调用不同的处理函数,完成请求,利用json和自定义的上层协议完成和服务器端的数据的交互。在登陆成功之后启动一...原创 2017-11-30 19:53:25 · 6457 阅读 · 2 评论 -
在linux下实现简单聊天系统(二)客户端的具体实现
客户端实现的具体内容:利用多线程实现,采取输入命令的方式让用户选择服务类型,根据不同的服务类型调用不同的处理函数,完成请求,利用json和自定义的上层协议完成和服务器端的数据的交互。在登陆成功之后启动一个线程用于接受服务器端的消息。通过socket进行服务器连接,之后绑定信号处理函数,让用户选择“注册”,“登陆”,“推出”等操作。其中操作具体实现都用json包进行发送,在服务器端接收后,进行解析,...原创 2018-03-07 21:05:45 · 1953 阅读 · 0 评论 -
在linux下实现简单聊天系统(三)服务器
我们在在一个主线程进行创建监听套接字,创建线程个数个双向管道(用双向管道因为消息发送是全双工的),创建cpu内核个数-1个子线程,利用libevent监听监听套接字和双向管道的一端,接受客户端连接,为客户端选择处理消息的子线程。在子线程中,我们分别创建三个子线程来分别完成相应的功能。子线程1负责通过sock_pair双向管道进行与主线程的信息交换,用同一个套接字cli_fd可以让用户选择不同模原创 2018-03-12 15:38:57 · 1568 阅读 · 0 评论 -
进程虚拟地址空间
首先我们要知道为什么要使用虚拟内存呢?是因为物理内存空间有限,虚拟内存用硬盘空间做内存来弥补计算机RAM空间的缺乏。当实际RAM满时(实际上,在RAM满之前),虚拟内存就在硬盘上创建了。当物理内存用完后,虚拟内存管理器选择最近没有用过的,低优先级的内存部分写到交换文件上。这个过程对应用是隐藏的,应用把虚拟内存和实际内存看作是一样的。CPU通过MMU来管理虚拟存储器,同时原创 2018-03-19 19:50:10 · 784 阅读 · 0 评论 -
linux下的malloc底层剖析总结
今天在看了网上一些大神的malloc底层剖析后,自己想对其做一个总结和梳理。首先我们都知道malloc()申请内存是在堆上进行的,并且需要我们主动进行free()释放,如果不释放的话,就会产生内存泄漏的问题。而在栈区上是由编译器自动释放的,存放的是函数的参数值,局部变量等,内存分配是连续的,类似于数据结构中的栈。我们生命变量时候,编译器会自动接着栈区的结尾来分配内存。在32转载 2018-03-21 23:56:34 · 651 阅读 · 0 评论