
Linux网络编程
文章平均质量分 61
shiyicode
已弃用! 可以通过shiyi@threebody.xyz联系我
展开
-
Linux内存管理机制
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存(buffer/cache),利用内存读写的高速特性来提高Linux系统的数据访问性能。在这方面,区别于Windows的内存管理。本文从Linux的内存管理机制入手,简单转载 2017-02-16 04:07:24 · 4821 阅读 · 2 评论 -
linux线程初学之实现打字母功能
前言 近日开始了吾之线程学习,略有所得,与进程相比,其可多线程同时执行代码段的特性,实是魅力巨大。 窃以为编程学习如武艺修炼,学了招式不过两招实在不应该,故做一打字母,实践练习。主要思路 打字母功能最主要的地方是 “字母不停下落,若按下对应键,字母消失,且在上方出现新的字母,重复此过程”。 简而言之,就是在向屏幕输出信息时还需要实时接受用户按键,而这与我们之前学习的程序设计顺序原创 2015-07-26 06:59:20 · 1321 阅读 · 0 评论 -
Linux 怎样实现非阻塞connect
前言 凡是接触过socket编程的,对connect函数一定不陌生。因为socket是面向连接的,所以在进行读写操作前我们首先要进行连接,而所谓连接也就是我们常说的三次握手,这个过程就是在connect函数中完成的。 虽然connect函数本身不具备阻塞的功能,但是我们可以通过对socket进行设置和使用select函数可以设置阻塞时间的特性实现非阻塞。为什么要非阻塞 第一,我们可以原创 2016-11-07 19:50:09 · 6194 阅读 · 0 评论 -
linux服务器开发之网关服务器的实现
什么是网关服务器 初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。 但是在处理量很大的情况下,一台机器不能满足我们的需求,此时我们应该怎么办。 我们可以将服务端的任务分摊到多台机器上完成,见下图 从图中可见,此时整个服务端主要分为了三部分。 网关服务器:负责连接客户端与逻辑服务器原创 2016-12-05 21:50:10 · 8285 阅读 · 2 评论 -
Epoll-ET模式读写之用户连接的封装
前言 服务端而言,对于每一个新的连接我们都需要去保存其基本信息,如ip地址,套接字fd,也需要赋予其唯一标识如用户名。 这里,我们来谈谈对用户连接的封装。用户连接需要哪些数据1. 套接字描述符 sockfd 执行读写操作时当然不可缺2. 连接信息 sockaddr 基本信息的保存3. 用原创 2016-12-03 16:36:16 · 743 阅读 · 0 评论 -
Epoll-ET模式下非阻塞读写之Buffer的封装
先说说Epoll的ET模式 epoll默认的模式是LT,要说ET不得不提到LT,LT与ET的区别可以用一句话概括: LT模式下只要socket处于可读状态(添加EPOLLIN事件时)或可写状态(添加EPOLLOUT事件时),就会一直返回其socket。 ET模式下在第一次返回socket后,只有当socket由不可写到可写(添加EPOLLIN事件时)或由不可读到可读(添加EPOLLO原创 2016-12-03 03:44:34 · 2038 阅读 · 0 评论 -
linux之信号处理函数signal和sigaction
signal回调函数绑定信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。那么我们很多场景下,需要对不同的信号进行捕获并做出响应操作。 在linux上,我们有两种方式完成该操作:1. signal#include <signal.h>signal(int, void (*)(int)); 第一个参数是我们要捕获的信号类型,第二个参数是我们要绑定的原创 2016-11-22 03:20:44 · 5570 阅读 · 0 评论 -
对比高性能I/O设计模式-Reactor/Proactor
通常,I/O复用机制都需要事件分享器。分享器对象可将来自事件源的I/O事件分离出来,并分发到对应的Read/Write事件处理器。开发人员预先注册需要处理的事件及该事件对应的事件处理器。 Reactor和Proactor都涉及到了事件分享器,不同的是,Reactor是基于同步I/O的,而Proactor是与异步I/O相关。在Reactor模式中,事件分离器等待某个事件或者某个操作的状态发生,比如文原创 2017-03-01 18:40:34 · 1583 阅读 · 0 评论