- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 LNMP环境搭建(CentOS7+Nginx1.10.1+MySQL5.6.31+PHP5.6.22)
零、准备工作安装wget:yum install wget -y安装gcc及g++:yum install gcc gcc-c++ -y后续所有源代码都下载到/usr/local/src目录防火墙更改配置及关闭selinux见另一篇文章《LAMP环境搭建》一、安装NginxNginx依赖pcre(重写rewrite)、zlib(网页gzip压缩)及openssl(加密传输)
2016-06-24 15:31:23
7175
转载 CentOS7安装apache.2.4.20
一. 下载安装包apr-1.5.2.tar.gzapr-util-1.5.4.tar.gzpcre-8.37.tar.gzhttpd-2.4.20.tar.gz二. 安装编译器yum install gcc -yyum install gcc-c++ -y三. 解压源码包安装顺序apr -> apr-util ,当然pcre可以乱入(顺序不重要);安装过程,
2016-06-22 16:18:39
355
原创 LAMP环境搭建
一、更改防火墙CentOS7默认使用的防火墙是firewall,我们将它更改为iptables:1、关闭firewall:sudo systemctl stop firewalld.service #停止firewallsudo systemctl disable firewalld.service #禁止firewall开机启动2、安装iptables:sudo yum
2016-05-29 08:57:27
416
转载 使用异步 I/O 大大提高应用程序的性能
使用异步 I/O 大大提高应用程序的性能学习何时以及如何使用 POSIX AIO APILinux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移
2013-09-30 16:03:59
505
转载 从用户角度理解"零拷贝" (Zero Copy I: User-Mode Perspective)
原文地址:http://www.linuxjournal.com/article/6345译文地址:http://blog.youkuaiyun.com/lovekatherine/archive/2007/03/25/1540291.aspx (解释Linux中的"零拷贝"特性,为什么有用以及何处需要改进之处) 如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰到没
2013-09-16 16:15:10
661
原创 select函数
该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。 作为一个例子,我们可以调用select,告知内核仅在下列情况发生时才返回: •集合{1、4、5}中的任何描述符准备好读; •集合{2、7}中的任何描述符准备好写; •集合{1、4}中的任何描述符有异常条件待处理; •已经历了10
2013-05-31 17:16:11
658
原创 close和shutdown函数
1 close函数 通常的Unix close函数也用来关闭套接字,并终止TCP连接。 #include int close(int sockfd); close将描述符引用计数减1。当该计数减到0时,对TCP套接字而言默认行为是把该套接字标记成已关闭,然后立即返回到调用进程。已关闭套接字不能再由调用进程使用,也就是说它不能再作为read或wr
2013-05-30 11:57:21
601
原创 I/0模型
UNIX下有5种可用的I/0模型: •阻塞式I/0; •非阻塞式I/0; •I/0复用(select和poll); •信号驱动式I/0(SIGIO); •异步I/0(POSIX的aio_系列函数)。 一个输入操作通常包括两个不同的阶段: (1)等待数据准备好; (2)从内核向进程复制数据。
2013-05-30 10:16:05
655
原创 accept函数
accept函数由TCP服务器调用,用于从已完成连接队列队头返回下一个已完成连接。如果已完成连接队列为空,那么进程被投入睡眠(假定套接字为默认的阻塞方法)。#include int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen);返回值:若成功则返回非负描述符,否则返回-1参数cliaddr和addr
2013-05-26 09:12:05
1191
原创 listen函数
listen函数仅由TCP服务器调用,它做两件事情:(1) 当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说,它是一个将调用connect发起连接的客户套接字。listen函数把一个未连接的套接字转换成一个被动套接字,指示内核应接受指向该套接字的连接请求。根据TCP状态转换图,调用listen导致套接字从CLOSED状态转换到LISTEN状态。(2) 本函数的第二
2013-05-26 09:09:54
1224
原创 bind函数
bind函数把一个本地协议地址赋予一个套接字。对于网际网协议,协议地址是32位的IPv4地址或128位的IPv6地址与16位的TCP或UDP端口号的组合。#include int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);返回值:若成功则返回0,否则返回-1第二个参数是一个指向特定于协议的地
2013-05-26 08:45:59
1158
原创 connect函数
TCP客户用connect函数来建立与TCP服务器的连接。#include int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);返回值:若成功则返回0,否则返回-1sockfd是由socket函数返回的套接字描述符,第二个、第三个参数分别是一个指向套接字地址结构的指针和该结构的大小。
2013-05-26 08:44:45
763
原创 socket函数
为了执行网络I/0,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型(使用IPv4的TCP、使用IPv6的UDP、Unix域字节流协议等)。#include int socket(int family, int type, int protocol);返回值:若成功则返回非负描述符,否则返回-1其中family参数指明协议族,它是图1中所示的某个常值。该参数
2013-05-26 08:33:20
628
原创 地址转换函数
有两组地址转换函数,它们在ASCII字符串与网络字节序的二进制值(这是存放在套接字地址结构中的值)之间转换网际地址。1、inet_aton、inet_addr和inet_ntoa函数这三个函数在点分十进制数串(例如“206.168.112.96”)与它长度为32位的网络字节序二进制值间转换IPv4地址。#include int inet_aton(const char *strpt
2013-05-26 08:05:32
1082
原创 字节操纵函数
操作多字节字段的函数有两组,它们既不对数据作解释,也不假设数据是以空字符结束的C字符串。当处理套接字地址结构时,我们需要这些类型的函数,因为我们需要操纵诸如IP地址这样的字段,这些字段可能包含值为0的字节,却不是C字符串。名字以b(表示字节)开头的第一组函数起源于4.2BSD,几乎所有现今支持套接字函数的系统仍然提供它们。名字以mem(表示内存)开头的第二组函数起源于ANSI C标准,支持AN
2013-05-22 14:18:48
699
原创 字节排序函数
考虑一个16位整数,它由两个字节组成。内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种是将高序字节存储在起始地址,这称为大端(big-endian)字节序。图1展示了这两种格式。 图1 16位整数的小端字节序和大端字节序 在该图中,我们在顶部标明内存地址增长的方向为从右到左,在底部标明内存地
2013-05-22 13:39:37
753
原创 套接字地址结构
大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议族都定义了它自己的套接字地址结构。这些结构的名字均以sockaddr_开头,并以对应每个协议族的唯一后缀结尾。1、IPv4套接字地址结构IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在头文件中。图1给出了它的POSIX定义: struct in_addr { in_a
2013-05-21 21:24:54
1198
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人