Unix网络编程
文章平均质量分 79
梦花火
服务端爱好者,个人博客地址http://justsolitude.com/
展开
-
#深入理解System V原理
深入理解System V原理原创 2017-11-07 17:24:37 · 500 阅读 · 0 评论 -
ftp关键技术四:空闲断开
首先提出一个问题,我们为什么需要空闲断开? 对于服务端而言,由于连接数和内存的限制,我们不可能对一个长时间处于不活跃的客户端,单独维护一个fd,一个进程/线程始终为其服务,fd单个进程上限默认值为1024,由于内存的限制,也不能无限制的分配出进程或者线程为其服务,这个时候我们就需要断开在规定时间内没有任何动作的客户端,腾出内存为其他客户端服务。第二个问题,我们要基于什么实现空闲断开呢?...原创 2018-07-26 14:29:20 · 1406 阅读 · 0 评论 -
ftp关键技术二:nobody进程创建和使用(一)
本文将从以下几个方面具体阐述nobody进程的前世今生 为什么需要nobody进程? 进程间通信的协议制定 为什么需要nobody进程(1)为什么要使用nobody进程和服务进程两个进程? 1.在PORT模式下,服务器会主动建立数据通道连接客户端,服务器可能就没有权限做这种事情,就需要nobody进程来帮忙。 Nobody进程会通过unix域协议(本机通信效率高) ...原创 2018-07-26 14:28:36 · 1785 阅读 · 0 评论 -
ftp关键技术二:nobody进程创建和使用(二)
本文将从以下几个方面具体阐述nobody进程的前世今生 如何给予nobody权限 nobody进程负责的任务以及实现 如何给予nobody权限先看看在系统中ftp服务器是如何工作的吧[root@VM_0_11_redhat ~]# ps -ef | grep miniftproot 6362 1 0 May13 ? 00:0...原创 2018-07-26 14:27:26 · 700 阅读 · 3 评论 -
漫谈io复用和高性能服务框架
前言:这篇博客可能会写的有点杂乱,毕竟是想到哪里写到哪里,至少算是一个总结性的文章。 一.IO复用的生 二.IO复用实现 三.统一事件源 四.Reactor模型 五.有限状态机一.IO复用的生 首先我们先说说不用IO复用时,我们所谓的并发服务器的极限。简单的想,我们可以用一个线程来负责一个链接,但是线程个数又不是可以无限增大的...原创 2018-07-26 14:23:38 · 193 阅读 · 0 评论 -
浅析线程安全的对象生命期的管理
1.前言:c++与其他面向对象语言不同,没有gc,c++要求程序员自己管理对象的生命,在并发编程环境下显得尤为困难。当一个对象能被多个线程同时看到时,那么对象的销毁时机就会变得模糊不清,可能出现多种竞争条件(race condition): 在即将析构一个对象时,从何知道别的线程是否正在执行该对象的成员。 如何保证在执行成员的函数期间,对象不会被另一个线程析构。 在调...原创 2018-07-26 14:22:24 · 223 阅读 · 0 评论 -
C++11开发中的Atomic原子操作
原文链接:https://www.cnblogs.com/the-tops/p/6347584.html?utm_source=itdadao&utm_medium=referral原子操作在多线程开发中经常用到,比如在计数器,序列产生器等地方,这类情况下数据有并发的危险,但是用锁去保护又显得有些浪费,所以原子类型操作十分的方便。原子操作虽然用起来简单,但是其背景远比我们想象的要复...转载 2018-07-28 18:02:18 · 508 阅读 · 0 评论 -
记一次做ftp服务器项目,遇到的字节顺序的问题。
记一次做ftp服务器项目,遇到的字节顺序的问题。———(转)为什么需要htons(), ntohl(), ntohs(),htons() 函数ps:近期在做FTP服务器项目,遇到一个深坑,当你在系统中获得port的时候,对于linux系统而言,获得的port 是 unsigned short 类型的,在使用转化的时候,就应该使用htons()函数,而不是htonl(),因为这个问题,排查问题,排查了原创 2018-04-29 18:14:57 · 272 阅读 · 1 评论 -
自己实现一个简单的读写锁
自己实现一个简单的读写锁原创 2017-11-14 14:19:10 · 1771 阅读 · 0 评论 -
浅谈UNIX网络编程system V IPC机制
一.System V IPC 的构成 1.system v消息队列 2.system v信号量 3.system v共享内存 我们把这三种工具统称为System V IPC的对象,每个对象都具有一个唯一的IPC标识符(identifier)。原创 2017-11-03 21:07:43 · 426 阅读 · 0 评论 -
muduo源码学习笔记(1)
前言: 对于muduo库,我觉得,光Linux多线程上提到的一些实现,还是不够的,在base/里面,还有/net里面提供了很多不错的实现,值得去学习,暑假算是看看muduo的百分之八十的源码,并对其进行了一次实现,(剩下的在最近总结的时候,也会开始看看,并实现一遍),对于muduo库,简单谈谈自己对其实现的理解。用RAII管理你的锁 Posix Thread内定义的一系列的mute...原创 2018-09-10 20:17:44 · 789 阅读 · 0 评论