
网络编程
文章平均质量分 89
someday1314
这个作者很懒,什么都没留下…
展开
-
linux网络编程之TCP定时器
TCP的四种定时器重传计时器:Retransmission Timer坚持计时器:Persistent Timer保活计时器:Keeplive Timer时间等待计时器:Time_Wait Timer。重传计时器 为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发生两种情况:若在计时器超时之前收到对报文段的确认,原创 2017-06-20 09:43:10 · 432 阅读 · 0 评论 -
高级I/O之多路转接select
一.关于I/O要提高网络服务服务器,提高I/O性能,本质上是在提高“等”的比重,“等”的比重趋于零,性能越好,而I/O中为了减少等的比重,可以让I/O一次等多个文件描述符,即I/O模型中的多路复用模型,本文则讨论的是多路复用之select模型二.select函数1.select函数的作用系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态原创 2017-06-29 12:55:15 · 326 阅读 · 0 评论 -
linux网络编程之tcp的三次握手和四次挥手
一 .tcp协议的通信tcp的通信过程分为三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道下图为tcp的通信过程示意图: 建立tcp连接通道:三次握手 断开tcp连接通道:四次挥手二.详解三次握手和四次挥手三次握手建立连接:第一次握手:客户端发送tcp报文到服务器,其中syn标志位1,seq=x(x为A的初始序列号,随机数),然后启动计时器,等待接收服务器的应答。该报文段成为SY原创 2017-06-20 15:29:21 · 1016 阅读 · 0 评论 -
linux网络编程之服务器
基于tcp协议的网络程序1.所用函数:socket函数 socket()打开一个网络端口,如果成功,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上首发数据,如果调用出错返回-1bind函数: 服务器程序所监听的网络地址和端口号通常是固定不变得,客户端程序得知服务器程序的地址和端口后就可以向服务器发起连接,因此需要调用bind()绑定一个固定的原创 2017-06-23 17:19:31 · 420 阅读 · 0 评论 -
linux之CRC校验
一.CRC的定义CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。二.工作原理循环冗余校验码(CRC)的基本原理是:在K位信息码原创 2017-06-12 14:54:06 · 1045 阅读 · 0 评论 -
linux脚本编程之shell实现彩色进度条
一.shell语法一.shell语法1shell中printf()的使用shell中printf()的使用printf的默认输出没有换行,换行需要自己加“\n” printf的默认输出没有换行,换行需要自己加“\n”.printf支持格式化输出,要不怎么能叫printf呢.printf支持格式化输出,要不怎么能叫printf呢 下面通过几个例子来实现printf的"输出"下面通过几个例子来实现原创 2017-07-07 18:47:15 · 613 阅读 · 0 评论 -
linux网络编程之多线程多进程服务器与进程线程池
一.实现tcp服务端多进程编写#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>#include<sys/types.h>#include<arpa/inet.h>#include<string.h>#include <netinet/in.h>static void usage(const char* proc){原创 2017-07-06 15:09:12 · 706 阅读 · 0 评论