网络编程
文章平均质量分 85
聪明的狐狸
北漂8年,来自河北,仍在一线编程。喜欢Coding,享受编程的乐趣,擅长C/C,Python,对Linux系统开发,网络编程,服务器开发有浓厚的兴趣
展开
-
网络编程中如何设置连接超时
众所周知,在进行网络编程的时候,如果使用系统connect函数,无法设置超时,而在连接一个不存在的主机时,将会一直阻塞。其实在调用connect函数时,将句柄设置为非阻塞,然后调用select函数,可以达到设置超时的效果。代码如下:bool connect(char *host,int port, int timeout){ TIMEVAL Timeout; Time原创 2013-12-09 11:10:17 · 1103 阅读 · 0 评论 -
TCP建立与断开连接那些事儿
TCP建立与断开连接那些事儿-本文详细描述了TCP建立与断开连接的过程,阐述每一个api调用背后都发生了什么,另外还针对一些错误处理,详细说明了成因。原创 2015-12-18 10:53:43 · 959 阅读 · 0 评论 -
select, iocp, epoll,kqueue及各种I/O复用机制
首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解转载 2015-07-18 10:50:18 · 742 阅读 · 0 评论 -
GetQueuedCompletionStatus返回值的处理顺序
IOCP 是5种socket 编程模型里最复杂的一种,只使用几个api,就能使程序支持成百上千个连接,而GetQueuedCompletionStatus函数又是IOCP里最重要的api,这个函数返回值含有各种信息。一般的处理顺序为:是先判断函数GetQueuedCompletionStatus的返回值,如果失败,看看WSAGetLastError()的值。否则检查OVERLAPP结构原创 2014-12-09 14:03:26 · 19981 阅读 · 0 评论 -
TCP Socket 粘包
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开原创 2014-10-16 11:04:26 · 1229 阅读 · 0 评论 -
TCP状态转换图
最全的TCP状态转换图原创 2014-04-26 19:50:11 · 1055 阅读 · 0 评论 -
传输层TCPUDP 详解
1、传输层存在的必要性2、引入传输层的原因3、传输层的功能4、传输层协议与网络层协议的主要区别5、传输层的用途6、端口号的概念7、传输层的主要协议8、TCP&UDP的比较原创 2014-04-26 19:12:49 · 1753 阅读 · 0 评论 -
高性能服务端编程知识点梳理图解
高性能服务端编程知识点梳理图解转载 2014-05-11 17:42:10 · 890 阅读 · 0 评论 -
SSH通信协议浅析
第一部分:协议概览 整个通讯过程中,经过下面几个阶段协商实现认证连接。 第一阶段: 由客户端向服务器发出 TCP 连接请求。TCP 连接建立后,客户端进入等待,服务器向客户端发送第一个报文,宣告自己的版本号,包括协议版本号和软件版本号。协议版本号由主版本号和次版本号两部分组成。它和软件版本号一起构成形如: "SSH-.-\n" 的字符串。其中软件版本号字符串的最大长度原创 2014-05-15 11:09:24 · 2850 阅读 · 0 评论 -
SSH 的工作过程
在整个通讯过程中,为实现 SSH的安全连接,服务器端与客户端要经历如下五个阶段:版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证会话请求阶段, 认证通过后,客户端向服务器端发送会话转载 2014-05-15 11:01:15 · 1878 阅读 · 0 评论 -
发送缓冲区、接收缓冲区、滑动窗口协议之间的关系
大家知道,TCP采用的是全双工的工作模式,对每一个TCP的SOCKET来说,都有一个发送缓冲区和接收缓冲区与之对应,TCP的流量(拥塞)控制便是依赖于这两个独立的buffer滑动窗口协议之间。我们可以通过一个简单实验体会三者之间关系。一、recv端在监听套接字上准备accept,在accept结束以后不做什么操作,直接sleep很久,也就是在recv端并不做接收数据的操作,在sleep结束原创 2014-03-30 11:50:04 · 5348 阅读 · 1 评论 -
HTTP协议状态码的含义
状态代码 状态信息 含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新) 200 OK 一切正常,对GET和POST请求的应答文档跟在后面。 201 Created 服务器已经创建了文档,Location原创 2014-03-29 22:11:43 · 811 阅读 · 0 评论 -
TCPIP协议概览
TCPIP协议族各种协议格式原创 2014-03-09 11:52:58 · 1946 阅读 · 0 评论 -
自己写的Ping 程序
// MyPingConsole.cpp : Defines the entry point for the console application.//#include "stdafx.h"#pragma comment(lib,"ws2_32.lib")#if 0#include "ping.h"int main(int argc,char **argv){原创 2014-03-04 13:37:22 · 1146 阅读 · 2 评论 -
SNMP 报文格式
SNMP采用的是UDP协议,也是采用C/S模型,不过在SNMP会话中,通常不称为客户端,服务器,而是叫管理进程,代理进程,可以认为管理进程是客户端,代理进程是服务器。 SNMP 规定了 5 种协议数据单元 PDU (也就是 SNMP 报文),用来在管理进程和代理之间的交换。get-request 操作:从代理进程处提取一个或多个参数值。get-next-request 操作:从代理原创 2014-02-03 11:45:53 · 10717 阅读 · 0 评论 -
基本编码规则(BER)---SNMP
基本编码规则(BER)SNMP使用的编码方法是BER(Basic Encoding Rule)。BER是一种编码规格说明,描述如何将 ASN.1 类型的值编码成字节串(string of octets)的方法 SNMP使用的编码方法是BER(Basic Encoding Rule)。BER的数据都由三个域构成:标识域(tag)+长度域(length)+值域(value)。简称原创 2014-02-02 16:11:23 · 18201 阅读 · 5 评论 -
TCP与UDP的区别
“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。上面的例子中,往水池里倒几次水和接几原创 2014-01-29 11:19:29 · 819 阅读 · 0 评论 -
SSL与TLS的区别以及介绍
SSL与TLS的区别以及介绍 SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。 TLS:(Transport Layer Secur转载 2014-01-14 19:37:03 · 3019 阅读 · 0 评论 -
网络编程思维导图
网络编程知识点,思维导图原创 2016-11-23 14:09:58 · 1797 阅读 · 0 评论