
网络编程
jigetage
这个作者很懒,什么都没留下…
展开
-
如何理解tcp的三次握手,四次挥手
原文地址这是一个很有意思的问题~ 首先,我们要知道TCP是全双工的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息。而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不能给A发,即不同时,为半双工。 单工为只能A给B发,B不能给A发; 或者是只能B给A发,不能A给B发。 我们假设A和B是通信的双方。我理解的握手实际上就是通信,发一次信息就...原创 2018-09-07 17:48:09 · 272 阅读 · 0 评论 -
epoll模型水平触发、边沿触发优缺点对比
epoll模式下的水平触发、边沿触发1,epoll默认是水平触发2,水平触发通俗来讲:只要有数据,epoll_wait函数就一直返回;边沿触发通俗来讲:只有socket状态发生变化,epoll_wait函数才会返回。3,水平触发优、缺点及应用场景:优点:当进行socket通信的时候,保证了数据的完整输出,进行IO操作的时候,如果还有数据,就会一直的通知你。缺点:由于只要还有数据...原创 2019-04-12 10:36:12 · 6148 阅读 · 1 评论 -
http幂等和非幂等操作有哪些
http幂等操作:get/put/deletehttp非幂等操作:post/patch原创 2019-04-23 11:18:23 · 1334 阅读 · 0 评论 -
如何在实际项目中使用shell脚本
shell命令太多,所以本文不讲具体每条shell命令的用法。本文要讲述shell命令在项目中是如何使用的。总结起来有两条:1,在交互窗口下,运行单条命令 2,在.sh脚本中使用。交互命令模式:很简单,直接输入shell命令,然后在终端窗口等待命令的返回值。.sh脚本模式:写.sh脚本,然后运行shell脚本。在写.sh脚本时要注意以下几点:1,为了可以在运行脚本时不再明确指定shell...原创 2019-05-03 23:15:31 · 943 阅读 · 0 评论 -
socket编程阻塞调用的函数有哪些
socket阻塞函数有哪些?当以阻塞方式进行socket通讯时,并不是所有函数调用都是阻塞式的。例如,以阻塞模式的套接字为参数调用bind()、listen()函数时,函数会立即返回。将可能阻塞套接字的socket API调用分为以下四种,总结起来就是和网络有关的函数时阻塞式的:1.输入操作: recv()、recvfrom()、WSARecv()和WSARecvfrom()函数。以阻...原创 2019-05-06 13:42:12 · 3769 阅读 · 0 评论 -
免密码登录ssh
首先生成密钥对,然后输入以下命令进行即可。$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub原创 2019-05-20 14:20:48 · 167 阅读 · 0 评论 -
apt与apt-get区别
apt包含了apt-get apt-cache apt-config,属于包含与被包含关系。apt与apt-get命令区别如下:原创 2019-05-21 14:38:48 · 414 阅读 · 0 评论 -
最通俗易懂的讲解Linux环境变量的设置
1,Linux下通过export设置环境变量,格式如下 export ENV_NAME=env_value2,存储的环境变量分为两类第一类是对登录此台机器的所有用户都有效,存放此类环境变量的文件是/etc/profile 和 /etc/.bashrc,此类文件有个共同点:所在目录一样,都是/etc/下。其中,/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一...原创 2019-05-11 23:41:40 · 302 阅读 · 0 评论 -
Linux下的用户和用户组知识点
Linux下的用户和用户组知识点。chmod修改文件权限。u:当前用户 g:与当前用户在同一个用户组的用户们 o:与当前用户不在同一个用户组的用户们。chgrp修改文件所属用户组。基本用法:chgrp -R groupid file,其中-R参数表示递归。chown修改文件所属用户。基本用法:chgrp -R userid file,其中-R参数表示递归。0:root用户,1-999:...原创 2019-05-26 19:36:04 · 233 阅读 · 0 评论 -
ssh sshd 区别
ssh sshd 区别:ssh是英文secure shell的简称,通过ssh机制可以实现在两台Linux主机之间建立可靠的shell连接。ssh运行在客户端,sshd运行在服务端,服务端通过sshd开启shell窗口,完成连接。并且可以通过修改sshd的配置文件,实现黑白名单、登录画面等功能。...原创 2019-04-11 14:00:18 · 9248 阅读 · 0 评论 -
最容易理解的tcp校验和
什么是tcp校验和?tcp报文中,在tcp的首部之前,多了一个12字节的伪首部,伪首部中4个字节保存源ip信息,4个字节目的ip信息,一个字节的保留位置,一个字节保存协议号(6代表tcp,17代表udp),2个字节保存tcp的真正首部和数据。根据伪首部的信息通过位运算,得到了一个校验和数据,保存在tcp保温的checksum字段。接收端接收到tcp报文后,也按照特定算法计算出一个校验和...原创 2019-03-22 13:59:52 · 4819 阅读 · 0 评论 -
洞悉C++网络编程之tcp/ip和socket api
原文地址:https://blog.youkuaiyun.com/libaineu2004/article/details/79020403TCP(Transmission Control Protocol) 传输控制协议三次握手TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK...原创 2018-10-30 23:54:42 · 669 阅读 · 0 评论 -
大端地址 小端地址 网络字节序 intel主机字节序
大端地址:内存高位地址存放数据的低字节,内存低位地址存放数据的高字节。总结:大--高低高低小端地址:内存高位地址存放数据的高字节,内存低位地址存放数据的低字节。总结:小--高高低低网络字节序:按照大端地址排列intel主机字节序:按照小端地址排列...原创 2018-12-30 12:05:15 · 963 阅读 · 0 评论 -
Linux 管道pipe 命名管道FIFO 读写 容量
在unix/linux 进程间通信方法包括管道、命名管道和信号一、无名管道(pipe)介绍:无名管道只能用于具有亲缘关系的进程之间,包括父进程与子进程、子进程与子进程。机制:管道是由内核管理的一个缓冲区。管道的一端连接一个进程的输出,这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管...原创 2019-02-03 15:08:59 · 2807 阅读 · 0 评论 -
tcp缓冲区
一、先上结论什么是tcp缓冲区?每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。二、缓冲区的意义write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。TCP协议...原创 2019-02-08 16:40:39 · 5973 阅读 · 2 评论 -
tcp 阻塞调用
1,先上结论阻塞调用:当调用未完成时,函数一直阻塞,直到调用完成才返回。2,什么场景下会阻塞默认情况,网络编程函数都是阻塞式。当调用write()/send()时:1) 输出缓冲区可用空间小于要发送的数据。首先会检查缓冲区,如果缓冲区的可用空间长度小于要发送的数据,那么 write()/send() 会被阻塞(暂停执行),直到缓冲区中的数据被发送到目标机器,腾出足够的空间,才...原创 2019-02-08 16:51:26 · 1107 阅读 · 0 评论 -
readv() 和 writev()函数详解
直接上结论:readv()代表分散读, 即将数据从文件描述符读到分散的内存块中;writev()代表集中写,即将多块分散的内存一并写入文件描述符中。依赖项:头文件:include <sys/uio.h>api接口:ssize_t readv(int fd, const struct iovec *vector, int count); ssize_t ...原创 2019-02-09 00:26:22 · 4741 阅读 · 0 评论 -
io复用相对于多进程、多线程的优势
网络编程中,实现并发的方法一般都是多线程、多进程、io复用技术。当被问到io复用技术相对于多线程、多进程的优势时,可以这样回答:cpu的最佳理想工作状态时:当需要的时候立即被调度到,当不需要的时候就好像没有一样。对于多进程、多线程方式,不论有无实际消息进来,线程/进程都可能被分配cpu的时间片,如果被cpu调度的时候,正好没有消息进来,那么就会造成cpu空调度,浪费资源。而对于io复用技术...原创 2019-03-25 14:21:27 · 1062 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞的区别
这可能是全网把同步/异步、阻塞/非阻塞区别分析的最到位的一篇文章了。朋友,如果你看完了,并且也觉得可以,请赏赐本屌一个赞吧!~比心~同步/异步、阻塞/非阻塞是针对不同的场景来说的。同步/异步:针对的是调用过程,对象是两个进程。进程1调用了进程2,进程2接收了这个调用,然后开始处理。如果是同步调用,那么在进程2处理完之前,进程2不能干别的事情了,得一直处理这个调用过程。如果是异步调用,那...原创 2019-03-25 14:44:19 · 385 阅读 · 0 评论 -
awk输出结果的第一行和第一列
输出第一列ps -ef | awk '{print $1}'输出第一行ps -ef | awk 'NR==1'原创 2019-07-03 09:36:04 · 39873 阅读 · 2 评论