标签 sock 下的文章
- 📂十、多进程服务器端教程
文章目录一、相关操作函数1. 创建进程函数2. 防止出现僵尸进程的函数3. 信号处理函数二、基于多任务的并发服务器1. 基于进程的并发服务器模型2. 代码实现3. 通过fork函数复制文件描述符三、基于多进程的客户端读写分离1. 代码实现至于什么是多进程,这里不展开叙述,可以去查阅相关技术资料,在本章中使用到的技术有:多线程编程以及信号处理,如果对这些技术不太熟悉可以自行查看相关资料。这里只...
- 📂Linux - 实现高并发HTTP服务器(只处理GET请求)教程
Linux - 实现高并发HTTP服务器[只处理GET请求]一、HTTP协议请求格式1. 客户端请求2. 服务器响应3. 项目中用到的响应代号二、项目实现一、HTTP协议请求格式1. 客户端请求客户端发送一个HTTP请求到服务器的请求消息包括如下格式:请求行(request line)、请求头部(header)、空行和请求数据四部分组成 2. 服务器响应服务器响应客户端的HTTP响应数据...
- 📂ubuntu install jenkins by docker教程
1.安装dockersudo apt update sudo apt install docker.io2.添加普通用户到docker组(可选,不操作此步,请用root用户执行docker命令)sudo gpasswd -a 账号 docker sudo service docker restart3.拉取docker imagedocker pull jenkins/jenkins4.创建...
- 📂Linux操作系统原理—内核网络协议栈教程
前言本文主要记录 Linux 内核网络协议栈的运行原理数据报文的封装与分用封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络。对于每一层而言,对收到的数据都会封装相应的协议首部信息(有时还会增加尾部信息)。TCP 协议传给 IP 协议的数据单元称作 TCP 报文段,或简称 TCP 段(TCP segm...
- 📂Linux 启动 Apache 时报错:(98)Address already in use: make_sock: could not bind to add教程
问题描述: 启动 Apache 时报错: [root@localhost sh]# service httpd start Starting httpd: httpd: Could not reliably determine the server‘s fully qualified domain name, using localhost.localdomain for ServerN...
- 📂Linux TCP通信例程教程
Linux环境下实现实现简单 TCP通信demo。例程一:client端和serve端相互发送接收,打印接收到的内容即退出结束。这里使用的IP地址是本机环回地址“127.0.0.1”,只能进行本地通信。 1 localhost、127.0.0.1和0.0.0.0和本机IP的区别 2 localhost 3 localhost其实是域名,一般windows系统默认将localhost指向1...
- 📂从Linux源码看Socket(TCP)的listen及连接队列教程
从Linux源码看Socket(TCP)的listen及连接队列前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Server端的Socket在进行listen的时候到底做了哪些事情(基于Linux 3.10内核),当然由于listen的backlog参数和半连接hash表以及全连接队列都相关,在这一篇博客里...
- 📂从Linux源码看Socket(TCP)的bind教程
从Linux源码看Socket(TCP)的bind前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。一个最简单的Server端例子众所周知,一个Server端Socket的建立,需要socket、bind、lis...
- 📂从Linux源码看Socket(TCP)的accept教程
从Linux源码看Socket(TCP)的accept前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。一个最简单的Server端例子众所周知,一个Server端Socket的建立,需要socket、bind、...
- 📂Linux 4.5/4.6 中对 SO_REUSEPORT 的改进教程
Linux 3.9 加入了 SO\_REUSEPORT 选项,可以提高 UDP 和 TCP server 的伸缩性,Linux 4.5/4.6 分别进一步改进了 UDP 和 TCP 的 SO\_REUSEPORT 实现。本文以 UDP 的实现为例来讲解,TCP 与之类似。UDP 协议的主要数据结构是两张 hash 表,指向 UDP 协议控制块 struct udp\_sock。其中 hash...
- 📂记一次Linux内核中socket源码走读教程
在熟悉TCP协议的原理后,我们知道TCP由于维护可靠性连接,其中的过程和算法是很复杂的。但是在实际开发中,一般只需要调用api提供的几个函数即可。更有甚者,现在各种框架将网络层包起来了,只留下应用层的读写调用,无疑大大降低了开发成本。但是,我们带着疑问“究竟在Linux下是如何实现socket的?”1、原理与使用一般而言,使用socket的接口创建一个socket,用如下构造函数。<p...
- 📂Linux 高级I/O函数-sendfile教程
sendfile函数在两个文件描述符之间直接传递数据(完全在内核中传递),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,又称为zero-copy。函数原型:\#include<sys/sendfile.h>ssize\_t sendfile(int out\_fd, int in\_fd, off\_t* offset, size\_t count);其中in\_fd...
- 📂18.windows使用select突破64个socket教程
在引入#include <WinSock2.h>之前,定义:\#define FD\_SETSIZE 1024就能实现突破64个socket客户端---------------:100个tcp的client去连接服务端DataHeader.hpp#ifndef _MessageHeader_hpp_ #define _MessageHeader_hpp_ enum CMD {...
- 📂TCP/IP 协议栈在 Linux 内核中的运行时序分析教程
目录- 1、基础概念简介1.1、Linux操作系统架构简介1.2、网络分层模型1.3、Linux网络协议栈结构1.4、Linux内核任务调度机制1.5、Socket套接字2、send过程分析2.1、应用层2.2、传输层2.3、网络层2.4、链路层和物理层3、recv过程分析3.1、链路层和物理层3.2、网络层3.3、传输层3.4、应用层4、时序图1、基础概念简介1.1、Linux操作系统架构...
- 📂傻瓜式Windows网络编程,客户端,服务端教程
服务端//vc的第一套socket,第二套socket,可能存在冲突\#define WIN32\_LEAN\_AND\_MEAN \#define \_WINSOCK\_DEPRECATED\_NO\_WARNINGS //也可以放到工程属性,预处理中\#include <windows.h> \#include <WinSock2.h> \#include ...
- 📂python写加密shell实用教程!
作者:掌控安全-冰封小天堂0x00:前言正常一个网站分为服务端和客户端,因为是正向的,所以服务端是在目标机器上的,客户端则是攻击者机器上,在这里要感谢MiaGz大师傅,这里很多都是参考了MiaGz大师傅的文章写出来的,进行了一点个人修改,而其中的加密方法则是参考了hacking8.com中python安全工具编写里的方法0x01:构造思路服务端要开启指定的监听端口,然后等待客户端来连接,s\...
- 📂UDP&TCP Linux网络应用编程详解教程
转载自韦东山博客1.目标暂时想不出什么好的应用场景, 目前想到目标就是实现让两个设备通过网络传输数据, 比如开发板和Linux主机之间传数据, 以后就可以实现开发板通过网络上报数据或者主机通过网络控制开发板。此外,暂时不想关心具体的网络模型,更注重于网络相关函数的直接使用。2.Linux网络编程基础2.1 嵌套字 多个TCP连接或者多个应用程序进程 可能需要同一个TCP端口传...
- 📂从linux源码看socket的阻塞和非阻塞教程
从linux源码看socket的阻塞和非阻塞 ===========================================笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non\_block)的区别。 本文源码均来自采...
- 📂小熊派移植 TencentOS-tiny+EC20+SAL框架对接 TCP/UDP 服务器教程
1. SAL套接字抽象层SAL全称Socket Abstract Layer,即套接字抽象层,主要作用是对上层应用提供统一的 socket 编程接口,屏蔽底层网络硬件的差异。1.1. SAL层向下提供的接口SAL层向下提供的接口在net/sal_module_wrapper/sal_module_wrapper.h文件中声明,如下:typedef struct sal_module_st {...
- 📂UDP and netstat教程
Do some experiment about UDP by Python3 and netstat.Code# coding: utf-8 import socket from IPython import embed def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) embed...
- 📂Linux下C语言实现半双工的UDP通信教程
------------恢复内容开始------------Linux下C语言实现半双工的UDP通信1、单向通信:又称为单工通信,即只能有一个方向的通信而没有反方向的交互。无线电广播或有线电广播以及电视广播就属于这种类型。单向通信只需要一条信道,而双向交替通信或双向同时通信则都需要两条信道(每个方向各一条)。显然,双向同时通信的传输效率最高。不过应当指出,虽然电信局为打电话的用户提供了双向同...
- 📂Linux 下epoll 网络模型教程
为什么需要epoll?基于select 的I/O 复用技术速度过慢,从代码上分析,最主要的两点是每次调用select 函数是都需要向改函数传递对象信息需要遍历所有文件描述符才能获取有变化的文件描述符epoll 不需要以上两点操作epoll 函数介绍epoll\_create/* Creates an epoll instance. Returns an fd for the new ins...
- 📂Ubuntu 19.10中Docker安装和配置国内源教程
Ubuntu 19.10中Docker安装和配置国内源Docker安装sudo apt-get install docker.io 安装好了之后,在使用过程中可能会存在一下错误。以下问题加 sudo可解决docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///va...
- 📂unix socket文件(.sock)文件,用于服务器内部进程通信教程
在同一台服务器上有很多个进程之间的通信使用一个.sock为后缀的文件来通信。比如php与mysql通信,apache与php-fpm的通信都可以采用一个socket文件。可以实现与socket套接字通信类似的功能,即使用ip:80端口监听来实现通信类似的功能。参见下面的php-fpm的配置文件中的程序监听地址,就是一个socket文件。 其他文件要想与该监听程序通信,那么需要read/wr...
- 📂Linux 下安装MySql 5.7教程
1.检查是否已经安装命令:rmp -qa|grep mysql 如果没有安装,应当如下图所示 如果有安装 使用yum命令,yum命令可以自动删除与mysql相关的依赖yum -y remove mysql-libs-5.1.73-8.el6_8.x86_64 删除后再查看是否成功。如果没有提示则删除成功。2.下载mysql 5.7mysql官网下载地址 将下载好的压缩包上传到服...
- 📂Linux 中的文件属性教程
文件属性d 开头是: 目录文件。 l 开头是: 符号链接(指向另一个文件,类似于瘟下的快捷方式)。 s 开头是: 套接字文件(sock)。 b 开头是: 块设备文件,二进制文件。 c 开头是: 字符设备文件。 p 开头是: 命名管道文件。创建套接字文件1 nc -Ul sock文件权限1 r = 4 2 w = 2 3 x = 1 4 5 chmod 660 sock
- 📂ubuntu16.04安装docker图形管理界面portainer教程
下载镜像<pre class="bash">``` docker pull portainer/portainer单机版运行<pre class="bash">``` docker run -d --name portainer \ -p 9000:9000 \ --restart=always \ -v...
- 📂linux socket编程系统调用栈教程
目录一、网络协议参考模型简介二、SOCKET概述三、SOCKET基本数据结构1、TCP通信编程2、服务器端实例代码3、客户端实例代码4、头文件socketwrapper.h5、程序实现功能6、探究socket系统调用@(linux socket编程实现原理)一、网络协议参考模型简介国际标准组织(ISO)制定了OSI模型。这个模型把网络通信的工作分为7层,从上至下为应用层、表示层、会话层、 传...
- 📂MySQL 部署分布式架构 MyCAT (一)教程
架构环境主机名IPdb1192.168.31.205db2192.168.31.206前期准备开启防火墙,安装配置 mysql (db1,db2)firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.31.0/24" accep...
- 📂CentOS7 supervisord 进程管理器一些配置教程
1 supervisorctl shutdown 关闭 2 supervisorctl reload 重载 3 supervisorctl restart all 重启所有服务 4 find / -name supervisor.sock unlink /path/supervisor.sock 杀死进程 5 注意点 启动进程必须设置ini 文件后缀 5.1 supervis...