网络编程
文章平均质量分 88
「已注销」
这个作者很懒,什么都没留下…
展开
-
阻塞/非阻塞/同步/异步详解
一、同步与异步同步/异步, 它们是消息的通知机制二、阻塞与非阻塞阻塞/非阻塞, 它们是程序在等待消息(无所谓同步或者异步)时的状态.同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。异步当一个异步过程调用发出后,调用者不会立刻得到结果。实际处理这个调用的部件是在调用发出后,通过状态、通知来通知调用者,或通过回调函数处理这原创 2015-04-28 12:36:03 · 2554 阅读 · 0 评论 -
Linux后台开发应该具备技能(二)
上一篇由于篇幅太大,编辑不方便。现补充一篇。后续会统一整理。上一篇地址:https://blog.csdn.net/majianfei1023/article/details/45337085一、Linux系统1、slab算法底层实现原理理解:Linux的伙伴算法把所有的空闲页框分组为11个块链表,每个块链表分别包含大小为1,2,4,8,16,32,64,128,256,51...原创 2019-06-21 16:39:35 · 999 阅读 · 2 评论 -
手游服务器开发技术详解
从事游戏服务器开发差不多两年时间,两年间参与了不少项目,学到了很多游戏服务器开发技术,参与过几个不同架构的服务器开发,就随便聊聊游戏服务器开发需要的技术。(以下所指游戏服务器更偏向于手游,因为我对端游和页游开发接触并不多)一.聊聊服务器开发有哪些东西要考虑。1.开发语言的选择:工欲善其事,必先利其器,选择一门适合的开发语法对后期开发有着事半功倍的作用。业界主要的是c/c......原创 2015-07-01 22:42:37 · 36338 阅读 · 11 评论 -
linux网络编程--keepalive
我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的。一、tcp keepalivetcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期发送心跳包给另一方,当一方断掉的时候,没有断掉的定时发送几次心跳包,如果间隔发送几次,对方都返回的是RST,而不是ACK,那么就释放当前链接。设想一下,如果tcp层没有原创 2016-04-05 19:47:42 · 1604 阅读 · 0 评论 -
进程间传递文件描述符--sendmsg,recvmsg
UNIX域套接字可以在同一台主机上各进程之间传递文件描述符。下面先来看两个函数:#include #include ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);原创 2016-05-19 16:31:37 · 7325 阅读 · 6 评论 -
网络编程学习笔记--1.socket可读可写条件
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45788591socket可读可写条件,经常做为面试题被问,因为它考察被面试者对网络编程的基础了解的是不是够深入。要了解socket可读可写条件,我们先了解几个概念:1.接收缓存区低水位标记(用于读)和发送缓存区低水位标记(用于写):...原创 2015-06-12 20:51:34 · 10088 阅读 · 4 评论 -
TCP_NODELAY和Nagle算法
一、概述在网络拥塞控制领域,有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896)。该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致原创 2016-06-01 21:08:46 · 2884 阅读 · 0 评论 -
进程间通信 和 线程间同步
以前经常搞混,所以记录下来。进程间通信主要是指多个进程间的数据交互。而线程间同步主要指维护多个线程之间数据准确、一致性。一、进程间通信主要有以下几种方式:管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道(named pipe):有名管道也是半双工的通信方式,但是...原创 2016-05-31 23:47:05 · 2965 阅读 · 1 评论 -
linux网络编程--eventfd
eventfd 在内核版本,2.6.22以后有效。查看内核版本可以用命令 uname -r。eventfd类似于管道的概念,可以实现线程间的事件通知,类似于pipe。而eventfd 是一个比 pipe 更高效的线程间事件通知机制,一方面它比 pipe 少用一个 file descriper,节省了资源;另一方面,eventfd 的缓冲区管理也简单得多,全部“buffer”一共只有8字原创 2016-04-20 14:22:08 · 3921 阅读 · 0 评论 -
boost.asio学习笔记一、linux下boost库的安装
学习开源库第一步就是编译安装好库,然后运行成功一个demo,然后才能进行之后的工作。下面就来讲讲boost库在linux下的安装。[mjf@localhost ~]$ tar -zxvf boost_1_55_0.tar.gz[mjf@localhost boost_1_55_0]$ ./bootstrap.sh --prefix=/home/mjf/lib[mjf@loc原创 2015-07-05 06:11:43 · 16679 阅读 · 1 评论 -
epoll详解
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45772269 一.基本概念: 1.epoll是什么:epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统C...原创 2015-05-16 23:33:02 · 3541 阅读 · 0 评论