【从Linux源码看Socket(TCP)的bind】教程文章相关的互联网学习教程文章

从linux源码看socket的阻塞和非阻塞【代码】【图】

从linux源码看socket的阻塞和非阻塞笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自采用Linux-2.6.24内核版本。一个TCP非阻塞client端简单的例子如果我们要产生一个非阻塞的socket,在C语言中如下代码所示:// 创建socket int sock_fd = socket(AF_IN...

Linux源码安装MySQL【代码】

MySQL的安装方式有很多,最简单最适用的就是二进制方法安装。1.创建数据目录: mkdir /data/{server,soft} -p2.解压软件并制定解压路径: tar -xvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -C /data/server3.名字过长,创建软连接: ln -s mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz mysql-5.6.354.创建专用用户: useradd -s /sbin/nologin -M mysql5.初始化MySQL: /data/server/mysql-5.6.35/scripts/mysql_install_db --b...

从Linux源码看Socket(TCP)的bind【代码】【图】

从Linux源码看Socket(TCP)的bind前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。一个最简单的Server端例子众所周知,一个Server端Socket的建立,需要socket、bind、listen、accept四个步骤。 代码如下:void start_server(){// server fdint sockfd_server;// accept fd int s...

Linux 源码的安装 3个步骤

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。如果配置--pre...

iTOP-3399开发板Linux系统编译烧写-获取/安装/编译Linux源码【图】

6.1 获取 x Linux 源码 源码(基于迅为iTOP-399开发板)首先从网盘下载迅为提供的Linux源码,下载后得到的源码文件目录如下图: 然后使用解压工具解压得到的源码,如下图: 解压完生成 rk3399_linux_sdk_v2.0_191209.tar.gz 压缩包,如下图:拷贝解压生产的 rk3399_linux_sdk_v2.0_xxxxxxxx.tar.gz(xxxxxxxx 代表源码的发布日期)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图: 解压完成后,得到文件夹:rk3399_linux_s...

linux源码安装nginx,并代理后端两个不同网站(tomcat容器)【代码】【图】

公司的windows服务器宣布退休,新服务器我安装了linux系统。将公司官网从旧服务器迁出来,两个官网放在两个tomcat容器,nginx代理两个tomcat以下为具体操作 一、下载相关的依赖库pcre 下载地址 http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gzopenssl 下载地址 https://www.openssl.org/source/openssl-1.0.2h.tar.gzzlib 下载地址 http://zlib.net/zlib-1.2.8.tar.gznginx 下载地址 http:...

安装Nginx到Linux(源码)【代码】

运行环境系统版本:无 软件版本:无 硬件要求:无安装过程NGINX官方提供源码包的下载,NGINX有两个版本Mainline(主线)版和Stable(稳定)版。主线版本我们可以理解为是开发版本,在生产环境中建议使用稳定版本。 源码安装适用于所有Linux操作系统。 NGINX官方下载地址:http://nginx.org/en/download.html。1、下载软件包[root@localhost ~]# wget http://nginx.org/download/nginx-1.14.0.tar.gz2、解压软件包[root@localhost ~...

linux通过源码编译安装mysql【代码】【图】

操作系统:CentOS 7MySQL版本:5.7.29MySQL源码编译安装比较复杂,但是具有高度自定义的优点。一、下载MySQL源码包下载地址:https://downloads.mysql.com/archives/community/ 我是在Windows中下载的,下载好后上传到Linux系统中。我就把源码包放到家目录下。二、具体安装步骤第一步:下载软件依赖把接下来安装过程中所需要的软件下载好。yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel -y 第二步:解...

linux上源码安装MySQL详解

最近需要使用MySQL Fabric,这货是MySQL5.6.10之后才出现的utility。手头机器装的是MySQL5.1,所以需要先把旧版MySQL升级成5.6版本。之前没有玩过MySQL,所以这次稍微费了点事。在此,把过程记录下来,希望能给有需求的人提供一点帮助。下面我们就正式开始。1. 删除老版本MySQL其实删除老版MySQL是一件很简单的事,但是开始时候由于担心各个包的依赖会导致各种问题,亦步亦趋来得很慢。其实只需要做到这么几步就可以了:1.1 查看已...

linux 源码安装apache PHP palin txt phpinfo 问题

sudo ./configure --prefix=/var/php --with-apxs2=/usr/local/apache2/bin/apxs LoadModule php5_module modules/libphp5.soDirectoryIndex index.html index.html.var .phpa-bash-3.2$ pwd/usr/local/apache2/htdocs-bash-3.2$ cat info.php<?php phpinfo();?>打开info.php, 一直都是plain的,没有任何php 的系统信息。 最后找到,要在httpd.conf 里加上后面这句。 然后重启sudo apachectl - k restartAddType applicatio...

linux源码分析之字节序(4)-- little_endian.h

本节主要分析小端字节顺序。首先,我们要回顾上一节讲过的大端、小端的概念: 字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。基于X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对int、uint16、uint32等...

Linux源码(0.11)学习03---复制内存页表 copy_mem copy_page_tables【代码】【图】

先看看分页机制里面的页目录表、页表、页之间的关系。分页机制是用于将一个线性地址转换为一个物理地址。在I32 CPU环境里面,首先通过设置CR0寄存器,打开保护模式、开启分页机制。然后将页目录表的物理地址基址给CR3寄存器。开启分页机制后,I32将全部的物理内存空间、线性地址空间划分为一个个的页。每个页可以是4KB或者4MB。页目录表里面存放页目录表项,每个页目录表项指向页表。其中页目录表项的高20位为对应页表的物理地址的...

Linux源码编译处理【代码】

1. 解决依赖问题查询需要的依赖软件,提前安装好若使用命令行安装,一般使用默认路径;使用源码安装,则自定义安装路径,后续可能需要进行路径配置PS:可能需要在Makefile等配置文件中添加相关库文件、头文件路径 2. 生成Makefile使用configure脚本:运行./configure --help查看可选的配置项,按需要进行配置,常用的选项有--prefix等,运行./configure生成Makefile使用Atuomake等工具,暂不详使用Cmake工具,需要编写CMakeLists.t...

从Linux源码看Socket(TCP)Client端的Connect【代码】【图】

从Linux源码看Socket(TCP)Client端的Connect前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Client端的Socket在进行Connect的时候到底做了哪些事情。由于篇幅原因,关于Server端的Accept源码讲解留给下一篇博客。 (基于Linux 3.10内核)一个最简单的Connect例子int clientSocket; if((clientSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0) {// 创建...

Linux 源码安装Python【代码】

下载源码tar包下载地址:https://www.python.org/downloads/我这里下载的 Python-2.7.11.tgz# tar -zxvf Python-2.7.11.tgz进入解压缩后的文件夹# cd Python-2.7.11  在编译前先在/usr/local建一个文件夹python2(作为python的安装路径,以免覆盖老的版本)# mkdir /usr/local/python2  开始编译安装# ./configure --prefix=/usr/local/python2 # make # make install移动之前的版本# mv /usr/bin/python /usr/bin/python_old再...