关闭

从内核代码聊聊pipe的实现

用linux也有两年多了,从命令,系统调用,到内核原理一路学过来,我发现我是深深喜欢上这个系统;使用起来就是一个字“爽”;当初在看 linux内核原理时,对linux内核源码有种敬畏的心理,不敢涉入,主要是看不懂,直到最近实习的时候,在某次分享会上,某位老师分享了OOM机制, 我很感兴趣,就去看内核代码,发现,原来我能看懂了;所以想写篇博客,分享下从内核代码分析pipe的实现; ...
阅读(48) 评论(0)

127.0.0.1和localhost和本机IP三者的区别!!!

1,什么是环回地址??与127.0.0.1的区别呢?? 环回地址是主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。 可以这么说:同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开TCP/IP协议栈的下层。(也就是说:不用再通过什么链路层,物理层,以太网传出去了,而是可以直接在自己的网络层,运输层进行处理了) IPv4的环回...
阅读(24) 评论(0)

localhost与127.0.0.1的区别

很多人会接触到这个ip地址127.0.0.1。也许你会问127.0.0.1是什么地址?其实127.0.0.1是一个回送地址,指本地机,一般用来测试使用。大家常用来ping 127.0.0.1来看本地ip/tcp正不正常,如能ping通即可正常使用。   对于大多数习惯用localhost的来说,实质上就是指向127.0.0.1这个本地IP地址。在操作系统中有个配置文件将localhost与1...
阅读(25) 评论(0)

INADDR_ANY的确切含义

INADDR_ANY就是inet_addr("0.0.0.0")         首先,需要明确的是当服务器的监听地址是INADDR_ANY时设置的是服务器的IP地址。    其次,当服务器的监听地址是INADDR_ANY时含义是让服务器端计算机上的所有网卡的IP地址都可以作为服务器IP地址,也即监听外部客户端程序发送到服务器端所有网卡的网络请求。     比如,我的网络为:19...
阅读(31) 评论(0)

Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来...
阅读(17) 评论(0)

TCP 协议中MSS的理解

在介绍MSS之前我们必须要理解下面的几个重要的概念。 MTU: Maxitum Transmission Unit 最大传输单元 MSS: Maxitum Segment Size 最大分段大小 PPPoE: PPP Over Ethernet(在以太网上承载PPP协议),就是因为这个协议的出现我们才有必要修改我们的MSS或者是MTU值。 MTU最大传输单元,这个最大传输单元实际上和链路层...
阅读(40) 评论(0)

C++中回调(CallBack)的使用方法

回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。 一般情况下, 我们使用的回调函数基本都是采用C语言风格. 这里介绍一种C++风格的回调对象方法. 采用t...
阅读(62) 评论(0)

进程的通信方式及其优缺点

进程通信的含义 进程是转入内存并准备执行的程序,每个程序都有私有的虚拟地址空间,由代码,数据以及它可利用的系统资源(如文件,管道)组成.多进程/多线程是windows操作系统的一个基本特征.Linux系统一般都统称为进程. 由于不同的进程运行在各自不同的内存空间中,其中一个进程对于变量的修改另一方是无法感知的,因此,进程之间的消息传递不能通过变量或其他数据结构直接进行,只能通过进程间通信来完成...
阅读(65) 评论(0)

C++标准转换运算符reinterpret_cast

reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。 什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。后半句倒是看出了reinterpret_cast的字面意思:重新解释(类型的比特位)。我们真的可以随意将一个类型值的比特位交给另一个类型作为...
阅读(36) 评论(0)

TCP/IP读书笔记

第一章 概述 1 TCP/IP的分层 链路层:物理接口、ARP、RARP 网络层:IP、ICMP、IGMP 运输层:TCP和UDP 应用层:应用程序 2 五类IP地址 共32bit A类地址 起始字段0----- 网络号7bit---- 主机号24bit 范围 0.0.0.0-127.255.255.255 B类地址 起始字段10---- 网络号14bit--- 主机号16bit...
阅读(40) 评论(0)

Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信

大家好,本次我们需要完成的任务是:  完成两台主机之间的数据通信(数据链路层) 仿真ARP协议获得网段内主机的MAC表使用帧完成两台主机的通信(Hello! I’m …)         声明:本文章的目的是为大家的Winpcap编程带来一定的借鉴,希望对大家的课程设计有一定的帮助。总之,我相信,大家看了前几篇 Winpcap 编程基础知识,再加上这篇文章的讲解,一步一步做下来,...
阅读(55) 评论(0)

高可用可伸缩架构实用经验谈

移动互联网、云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品。此时,如果用户需求抓得准,用户数量将很可能获得爆发式增 长,而不需要像以往一样需要精心运营几年的时间。然而用户数量的快速增长(尤其是短时间内的爆发式增长),通常会让应用开发者有些吃不消,不得不面临一些 严峻的技术挑战:如何避免因为单台机器当机导致服务不可用;如何避免在服务容量不足时,用户体验下降,等等。在系统构建之...
阅读(83) 评论(0)

闲谈高可用与负载均衡

闲谈高可用和负载均衡     高可用集群和负载均衡集群想必大家或多或少都听说过,但是很多人往往把这两个搞混在一起,不加区分地使用这两个概念。虽然说很多负载均衡的设备有着高可用的特性,或者高可用的机器使用着负载均衡的方式分发流量,事实上,高可用和负载均衡是两个完全不同的概念,两者关注的地方是不同的,而且很多在很多场景下两者的需求是冲突的。   那,什么是高可用和负载均衡呢?两...
阅读(47) 评论(0)

Linux下IP冲突检测程序源码及分析(利用免费arp)---感谢原作者

该程序运行在Linux环境下,可以检测ip冲突, 我试过, 挺靠谱的,现摘录如下:(该程序涉及免费arp, 关于免费arp的概念和原理, 请自己在网上学习) [cpp] view plain copy #include    #include    #include     #include    #include    #includ...
阅读(79) 评论(0)

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。 第一部分:RabbitMQ,ActiveMq,ZeroMq比较 1、 TPS比较 一 ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这...
阅读(97) 评论(0)

ZooKeeper学习第二期--ZooKeeper安装配置

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeep...
阅读(79) 评论(0)

ZooKeeper学习第一期---Zookeeper简单介绍

一、分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调 度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解。如果...
阅读(69) 评论(0)

利用redis-sentinel+consul实现redis高可用

在前文《利用redis-sentinel+keepalived实现redis高可用》详细描述了利用redis-sentinel+keepalived实现redis高可用的方案。本文中redis-sentinel的应用场景也是一样的,也是提供Redis单实例服务,当某Redis(master)服务意外停掉或该服务所在的主机发生宕机故障或网络故障时,另一台Redis服务会由slave自动成为maste...
阅读(70) 评论(0)

利用redis-sentinel+keepalived实现redis高可用

目标、需求: 为上层应用提供高可靠、低延迟、低(无限接近0)数据损失的Redis缓存服务 方案概述: 采用同一网络内的三台主机(可以是物理主机、虚拟机或docker容器),要求三台主机之间都能相互访问,每一台主机上都安装redis-server、redis-sentinel和keepalived。 redis-server负责提供Redis缓存服务,三台主机间的关系是mas...
阅读(94) 评论(0)

YUV420如何扣取指定区域的图像数据

YUV420数据的存储方式有两类:planar和packed。planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。          本文记录一个对于planar的YUV420格式,大小为720P的RAW图像,读取指定区域的数据,并保存为一个新的YUV420格式RAW。 ...
阅读(181) 评论(0)
275条 共14页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:75482次
    • 积分:1204
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:264篇
    • 译文:0篇
    • 评论:3条