Linux 网络
leokelly001
这个作者很懒,什么都没留下…
展开
-
typedef用法小结
来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使转载 2015-01-12 09:48:56 · 559 阅读 · 0 评论 -
Linux poll 多路复用机制
1. 头文件# include 2. 参数说明int poll ( struct pollfd * fds, unsigned int nfds, int timeout);和select()不一样,poll()没有使用低效的三个基于位的文件描述符set,而是采用了一个单独的结构体pollfd数组,由fds指针指向这个组。pollfd结构体定义如转载 2015-01-19 13:10:37 · 718 阅读 · 0 评论 -
Linux epoll 多路复用机制
1. epoll的优越性上一节介绍的select有几个缺点:存在最多监听的描述符上限FD_SETSIZE每次被唤醒时必须遍历才能知道是哪个描述符上状态ready,CPU随描述符数量线性增长描述符集需要从内核copy到用户态这几个缺点反过来正是epoll的优点,或者说epoll就是为了解决这些问题诞生的:没有最多监听的描述符上限FD_SETSIZE,只受最多文件描述符原创 2015-01-19 20:21:02 · 986 阅读 · 0 评论 -
printf 缓冲区问题
昨天在做Linux实验的时候,后面的同学发现一个很差异的现象!废话不说,先贴代码! 就是简单的fork小程序,简化之后的代码如下:[cpp] view plaincopyprint?#include #include #include #include in转载 2015-01-20 21:54:35 · 754 阅读 · 0 评论 -
socket编程小问题:地址已经被使用——Address already in use
很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端socket后还是有这个问题。正如下面的这段简单的socket程序。 server.c[c-sharp] view plaincopy转载 2015-01-19 21:15:32 · 772 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:转载 2015-01-21 19:59:39 · 1015 阅读 · 0 评论 -
OPENSSL编程入门学习
相关学习资料http://bbs.pediy.com/showthread.php?t=92649https://www.openssl.orghttps://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CDoQFjAD&url=http%3a%2f%2fidning-ebook%2egooglec转载 2015-01-22 16:22:09 · 840 阅读 · 0 评论 -
eclipse c++ : `pthread_create 未定义
由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:gcc -o pthread -lpthread pthread.c-------------------http://yecheng110.blog.hexun.com/13030352_d.html今转载 2015-01-11 21:04:45 · 838 阅读 · 0 评论 -
SSL/TLS协议运行机制的概述
作者: 阮一峰互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。(1) 窃听风险(eavesdropping转载 2015-01-21 19:23:44 · 654 阅读 · 0 评论 -
SPDY协议 - v3
SPDY协议 - v3原文:SPDY Protocol - Draft 3翻译:邱鹏滔(QQ: 95350530,主页:www.fireflysource.com)1 概述HTTP协议的瓶颈在于它需要靠很多链接来处理并发。造成这个原因的问题包括连接建立时额外的往返周期,慢启动延迟,以及有限的连接数,客户端要避免打开过多的连接数去连接服务器。HTTP管线化解决了部分问题,但是仅仅转载 2015-01-22 14:29:13 · 2566 阅读 · 0 评论 -
bash中 2>&1 & 的解释
1、首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。2、输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat 1.txt将ls的结果从标准输出重定向为1.txt文本。有时候会看到如 l转载 2015-01-22 20:57:05 · 578 阅读 · 0 评论 -
再谈应用环境下的TIME_WAIT和CLOSE_WAIT
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。在服务器的日常维护过程中,会经常用到下面的命令:[plain] view plain转载 2015-01-30 10:51:32 · 656 阅读 · 0 评论 -
linux select 多路复用机制
函数作用:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、原创 2015-01-16 19:24:29 · 621 阅读 · 0 评论 -
void与void*详解
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ; 4. void不能代表一个真实的变量;void体现了转载 2015-01-12 10:28:14 · 1481 阅读 · 0 评论 -
Linux C++的多线程编程
1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢转载 2015-01-12 14:57:02 · 648 阅读 · 0 评论 -
内存的静态分配和动态分配的区别
内存的静态分配和动态分配的区别主要是两个: 一是时间不同。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。 二是空间不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由函数malloc进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需转载 2015-01-14 17:05:19 · 891 阅读 · 0 评论 -
Linux中判断大端小端
//=======================================第一个方案//---------------------------------------------------------union{ int a; char b;}EndianTest;EndianTest.a = 0x00000001;if( EndianTest.b =原创 2015-01-14 10:35:26 · 1449 阅读 · 0 评论 -
进程间通信--管道
前面我们学习了一下进程,我们知道多,进程间的地址空间相对独立。进程与进程间不能像线程间通过全局变量通信。 如果想进程间通信,就需要其他机制。 常用的进程间通信方式有这几种A.传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)B.System v IPC对象共享内存(share转载 2015-01-15 22:01:15 · 495 阅读 · 0 评论 -
Linux进程间通信——使用信号量
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行转载 2015-01-16 11:24:10 · 583 阅读 · 0 评论 -
Linux进程间通信——使用共享内存
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc转载 2015-01-16 13:10:06 · 590 阅读 · 0 评论 -
Linux socket 及多线程 实例
最近开始学习linux网络通信, 学了一周了,有了一些基本的理解.下面是一个小实例.程序很简单,服务端与客户端进行简单的通信.采用自定义通信协议,协议的格式很简单:第一个字段是类型,如'a',表示创建新文件等代码很简单:server端/* * Myserver2.cpp * * Created on: 2015-1-9 * Author: shuya原创 2015-01-15 19:51:54 · 1004 阅读 · 0 评论 -
Linux进程间通信——使用命名管道
一、什么是命名管道命名管道也被称为FIFO文件,它是一种特殊类型的文件,它在文件系统中以文件名的形式存在,但是它的行为却和之前所讲的没有名字的管道(匿名管道)类似。由于Linux中所有的事物都可被视为文件,所以对命名管道的使用也就变得与文件操作非常的统一,也使它的使用非常方便,同时我们也可以像平常的文件名一样在命令中使用。二、创建命名管道我们转载 2015-01-16 10:33:28 · 909 阅读 · 0 评论 -
Linux进程间通信——使用消息队列
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞转载 2015-01-16 11:45:44 · 516 阅读 · 0 评论 -
学习 shell脚本之前的基础知识
返回网站首页linux入门教程搜索第十二章 学习 shell脚本之前的基础知识日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员。目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目。有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富。笔者讲这些的目的只有一个,那就转载 2015-01-22 22:18:34 · 672 阅读 · 0 评论