网络编程
文章平均质量分 78
byxdaz
十年以上C/VC++开发经验。熟悉网络编程、数据库编程、数字图像处理与识别,熟悉软件工程和项目管理,熟悉linux C/C++开发。
展开
-
Linux抓包工具tcpdump
tcpdump是一个抓包工具,用于实时捕获和分析网络流量。它通常在unix和linux操作系统上使用。tcpdump能够捕获流经网络接口的数据包,并显示或保存它们以供进一步分析。它提供有关每个数据包的详细信息,包括源IP地址、目标IP地址、使用的协议、数据包时间戳、数据包大小等等。原创 2023-09-12 13:09:52 · 818 阅读 · 0 评论 -
SIP支持的传输协议
如果存在”sent-by”参数,那么就用”sent-by”指定的port,如果不存在,那么就用缺省的port。SIP支持TCP传输:增加了SIP报文和语音传输的可靠性,通过TCP协议自身的特点为基于SIP的VoIP通信提供了面向连接和可靠的传输。SIP支持TLS(Transport Layer Security,传输层安全)传输:SIP支持TCP传输仅仅保证了SIP报文和语音传输的可靠性,而SIP支持TLS传输则保证了SIP报文传输的安全性。SIP支持UDP传输:UDP是一个无连接的协议,且不提供可靠性。原创 2023-07-16 18:34:12 · 2266 阅读 · 0 评论 -
GB/T 28181-2011、2016、2022变更对比
目录响应报文中,Info标签修改为ExtraInfo标签设备信息响应中,Channel字段格式变更(未使用),Info标签修改为ExtraInfo标签(未使用)设备状态查询响应中,Info标签修改为ExtraInfo标签(未使用)文件目录检索(录像回放列表)应答中,Info标签修改为ExtraInfo标签(未使用)A.2.4增加了部分查询命令及参数;但对于一个系统来说,抓拍图像是一件很严肃的工作,涉及到国家、单位、公民个人的秘密和隐私,此次系统将图像抓拍纳入标准中,保护了以上信息,规范了系统使用者的操作。原创 2023-05-02 13:05:56 · 4828 阅读 · 0 评论 -
curl获取下载状态、下载进度
使用curl命令下载文件,通过--progress-bar获取进度,通过读取打印结果判断下载完成情况。下载文件(成功或失败)代码。原创 2023-04-22 16:07:45 · 2471 阅读 · 0 评论 -
libevent库介绍
一、libevent就是一个基于事件通知机制的库,支持/dev/poll、kqueue、event ports、select、poll和epoll事件机制,也因此它是一个跨操作系统的库(支持Linux、*BSD、Mac OS X、Solaris、Windows等)。目前应用该库的有Chromium、Memcached、NTP、tmux等应用。 libevent 库实际上没有更换select(...原创 2019-03-17 16:31:04 · 13864 阅读 · 2 评论 -
libevent evhttp多线程
evhttp多线程原创 2022-09-15 11:27:39 · 1216 阅读 · 0 评论 -
libevent evhttp使用
一、libevent evhttp使用1、基本流程http服务端使用到的借口函数及流程如下1)、创建event_base和evhttpstruct event_base *event_base_new(void);struct evhttp *evhttp_new(struct event_base *base);2)、绑定地址和端口int evhttp_bind_socket(st...原创 2019-11-29 00:25:07 · 4164 阅读 · 1 评论 -
校验和计算
校验和计算参考RFC文献1. 前言校验和计算是NAT功能和内容修改功能的基本功,这些操作进行后都需要修改数据头中的校验和。2. 16位校验和计算2.1 基本原理IP/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,采用的都是将数据流视为16位整数流进行重复叠加计算。为了计算检验和,首先把检验和字段置为0。然后,对有效数据范围内中每个16位进行二进制反码...转载 2007-08-16 11:04:00 · 14291 阅读 · 0 评论 -
ARP协议
ARP与RARP 内容来源于enet.comRFC 826 是A R P规范描述文档ARP,全称Address Resolution Protocol,地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。 IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网原创 2007-08-01 13:23:00 · 2846 阅读 · 0 评论 -
UDP数据段格式
UDP是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。 如图2-6所示,是UDP头部结构(RFC 793、1323): 图2-6 UDP数据段格式 ●源、目标端口号字段:占16比原创 2007-08-01 13:31:00 · 5030 阅读 · 1 评论 -
ICMP 格式
500){this.resized=true;this.style.width=500;}" border="0" alt="" />500){this.resized=true;this.style.width=500;}" border="0" alt="" />因特网控制消息协议(ICMP)允许路由器或目的主机向数据包源结点报告在数据报处理过程中出现的错误,是IP的必要组成部转载 2007-08-01 13:25:00 · 8020 阅读 · 1 评论 -
TCP报文格式
传输控制协议(TCP)向上与用户应用程序进程接口,向下与网络层协议IP接口。用户应用程序采用首先调用TCP(或UDP),然后将应用程序数据递交给TCP这一方式,在IP网络上传送数据。TCP将这些数据打包分段并调用IP模块向目的主机传送每个数据段。接收方的TCP将段中的数据放入接收缓冲器,然后将段重装为应用程序数据,再将这些数据发送到目的的应用程序进程。 尽管T C P和U D P都原创 2007-08-01 13:21:00 · 17357 阅读 · 0 评论 -
IP数据报格式
500){this.resized=true;this.style.width=500;}" border="0" resized="true" src="http://x5meghwa.onlyblog.com/UploadFiles/2007-7/65043.29630897.jpg" />版本字段长度为4,用来表明建立数据报的IP版本,目前的IP版本是IPv4,IPv6正在发展中。IP原创 2007-08-01 13:17:00 · 7708 阅读 · 3 评论 -
几种网络编程方式的比较
几种网络编程方式的比较 cndg 2006-4-13一、常见的四种网络编程方式1.ISAPI编程ISAPI(即Internet Server Application Program Interface),是微软提供的一套面向Internet 服务的API接口,它能实现CGI(C原创 2006-04-15 14:35:00 · 5972 阅读 · 1 评论 -
TCP/IP协议详解卷1学习笔记系列二
TCP/IP协议详解卷1学习笔记系列二卷1第七、八章 第七章是Ping程序的基本原理,第八章是traceroute( Win2000下是tracert)的原理。主要介绍的是一些原理性的东西,并以实际的tcpdump的抓包的内容作解释。 ping 程序是利用icmp的回复请求来探测远端主机是否可达。(并不能继续判断端口是否可达。要想查看端口,就要使用扫描器了。)w in2000转载 2006-04-13 10:00:00 · 1784 阅读 · 0 评论 -
TCP/IP学习笔记(八)
TCP/IP学习笔记(八)一、FTP:文件传输协议 1、 FTP协议:采用2个TCP连接来传输一个文件。 (1) 控制连接: 控制连接通常以客户服务器方式建立。控制连接始终等待客户与服务器的通信,该连接将命令从客户端传给服务器,并传回服务器的应答。 (2) 数据连接: 该连接用于数据传输。 2、 数据表示: (1) 文件类型: ◆ ASCII文件:默认以NVT ASCII形式传转载 2006-04-13 09:55:00 · 1686 阅读 · 0 评论 -
TCP/IP学习笔记(七)
TCP/IP学习笔记(七)一、SNMP:简单网络管理协议 基于TCP/IP的网络管理包括两部分:网络管理站(manager)和被管理的网络单元(被管设备)。这些被管设备的共同点就是都运行TCP/IP协议。管理进程和代理进程之间的通信有两种方式,一种是管理进程向代理进程发出请求,询问参数值,另一种方式是代理进程主动向管理进程报告某些重要的事件。基于TCP/IP的网络管理包含3个组成部分: (转载 2006-04-13 09:54:00 · 1644 阅读 · 0 评论 -
TCP/IP学习笔记(二)
TCP/IP学习笔记(二)一、 ARP:地址解析协议 先看: C:/Documents and Settings/xiaoj>arp -a Interface: 192.1.8.84 on Interface 0x1000003 Internet Address Physical Address Type 192.1.8.12 00-0b-cd-0转载 2006-04-13 09:48:00 · 2079 阅读 · 0 评论 -
TCP/IP学习笔记(一)
TCP/IP学习笔记(一)一、 TCP/IP结构: TCP/IP是一个四层协议,结构如下: 1、应用层:各种应用程序和协议,如Http、FTP等。 2、传输层:TCP和UDP TCP提供一种可靠的运输层服务,但UDP是不可靠的,不能保证数据报到正确到达目的地。 3、网络层:IP、IGMP、ICMP IP提供的是一种不可靠的服务,也就是尽可能块地把转载 2006-04-13 09:48:00 · 2328 阅读 · 0 评论 -
网络编程--WINSOCK
WINSOCK编程 目前,Internet已成为世界上最大的TCP/IP网络。早期的站点是UNIX机器,一组称为Berkeley插口的约定成为INTERNET上UNIX机器之间利用TCP/IP进行通信的标准。其他操作系统也用TCP/IP进行通信,这极大地促进了INTERNET的发展。WINDOWS插口 WINSOCK标准定义了一个DLL接口,通常叫做WINSOCK.DLL或者WSOCK原创 2006-04-13 10:26:00 · 3092 阅读 · 0 评论 -
Windows Socket五种I/O模型
Windows Socket五种I/O模型如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。转载 2008-03-02 16:23:00 · 2520 阅读 · 1 评论 -
gsoap使用总结
WebService、soap、gsoap基本概念WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件。本质上就是要以标准的形式实现企业内外各个不同服务系统之间的互调和集成。soap概念:简单对象访问协议,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。从这里的概念可以看得出...原创 2016-06-15 11:41:51 · 15541 阅读 · 1 评论 -
使用libcurl操作ftp
使用libcurl操作ftp存储文件、目录等,操作之前可以先登录,也可以不登录再请求添加ftp和用户密码信息,libcurl会检测没有登录的话会自动登录请求。1、ftp上传文件,需要自动创建目录时,需要设置CURLOPT_FTP_CREATE_MISSING_DIRS属性。ftp上传文件时,目录不存在时,设置下面的属性,可以在上传文件时,自动创建目录。curl_easy_se...原创 2018-11-15 20:20:49 · 9432 阅读 · 1 评论 -
libcurl库使用方法
一、ibcurl作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP这些协议,同时支持使用SSL...原创 2018-08-20 13:54:00 · 12756 阅读 · 3 评论 -
网络公共函数(大小端字节转换、网卡/ip信息获取等。)
网络公共函数(大小端字节转换、网卡/ip信息获取等。)//NetCommmonFunction.h//网络公共函数(大小端字节转换、网卡/ip信息获取等。)#pragma once#include <Windows.h>#include <list>#include <string>//ip地址信息typedef struct tagIpIn...原创 2017-11-14 13:05:10 · 1843 阅读 · 0 评论 -
Socket编程中检测端口是否被占用
一般检测一个端口是否被占用的方法是看bind是否成功,其实在Windows中有两个API可以获取到当前系统端口的占用情况(GetTcpTable/GetUdpTable),利用这两个函数就可检测端口占用情况。但在较复杂系统环境下,端口占用表可能随时改变,可能存在两个以上进程使用上述方法检测到同一空闲端口,在这种情况下,可使用Bind方法进行端口选择。一、通过GetTcpTab...原创 2017-08-04 14:41:38 · 11841 阅读 · 0 评论 -
网络编程学习小结
几种网络编程方式:ISAPI、CGI、WinInet、Winsock它们之间的区别:1) ISAPI主要是开发基于浏览器客户端与服务器端程序。效率比CGI方式高,而且也扩展了CGI没有的一些功能。(基于TCP/IP模型中的应用层)2) CGI主要是开发基于浏览器客户端与服务器端程序。(基于TCP/IP模型中的应用层)3) WinInet主要是开发客户端程序。(基于TCP/原创 2009-08-29 13:42:00 · 68042 阅读 · 22 评论 -
NAT原理与NAT穿透
NAT原理 网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。下面介绍两类不同方式实现的NAT:NAT(Network Address Translators):称为基本的NAT在客户机时 192.168.0.8:4000——6.7.8.9转载 2016-10-11 10:45:37 · 27977 阅读 · 3 评论 -
Libjingle介绍
Libjingle转载 2016-10-11 11:31:02 · 15121 阅读 · 2 评论 -
数据接收中粘包及半包的处理
在使用TCP协议的网络应用中,不可避免需要处理的一个问题就是半包和粘包的情况。 一种做法是在接收端设一个比较大的缓冲区,先将收到的数据包都放到缓冲区中,然后从该缓冲区中选取完整的数据包出来。该缓冲区的实现可以使用环形缓冲区进行优化,避免频繁的数据移动。使用该方法的一个描述见 http://www.vckbase.com/document/viewdoc/?id=1203 另外一种做法就转载 2012-01-17 09:19:49 · 2151 阅读 · 0 评论 -
同步IO和异步IO
同步IO和异步IO 有两种类型的文件IO同步:同步文件IO和异步文件IO。异步文件IO也就是重叠IO。在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。如果IO请求需要大量时间执行的话,异步文件IO方式可以显著提高原创 2010-04-08 10:31:00 · 29218 阅读 · 0 评论 -
代理服务
代理服务(1) 代理服务原理代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。 当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。 机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的I原创 2010-03-31 23:25:00 · 3666 阅读 · 0 评论 -
TCP/IP协议详解卷1学习笔记-IP校验和与ICMP协议
IP数据报的检验和: 为了计算一份数据报的I P检验和,首先把检验和字段置为0。然后,对首部中每个16 bit进行二进制反码求和(整个首部看成是由一串16 bit的字组成),结果存在检验和字段中。当收到一份I P数据报后,同样对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算转载 2006-04-13 09:59:00 · 1935 阅读 · 0 评论 -
TCP/IP学习笔记(四)
TCP/IP学习笔记(四) 一、UDP协议 UDP 是一个简单的面向数据报的运输层协议,进程的每个输出操作都产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性。UDP封装格式: IP首部(20) UDP首部(8) UDP数据转载 2006-04-13 09:50:00 · 2056 阅读 · 0 评论 -
实例解析IPv6下的VC网络编程
实例解析IPv6下的VC网络编程自IPv4诞生至今已有20多年了,目前它虽仍因互联网的成功而风光无限,但是如同“Internet正在成为其自身巨大成功的受害者”一样,目前IPv4地址的极度匮乏注定它将被历史所淘汰。而IPv6—IPv4的继承人,具有地址空间巨大,支持QOS等许多优良特性,在不久的将来会迅速的普及,但IPv6的出现将对目前网络编程方式产生一定的影响。 本文将就IPv6环境下的网原创 2006-03-29 14:53:00 · 3657 阅读 · 1 评论 -
WinSock初学入门:实现TCP服务器
WinSock初学入门:实现TCP服务器(一)介绍: 本文主要采用Winsock API实现了一个Tcp服务器。对初学者而言,相当实用。 (二)准备工作: 1、使用vc6向导建立控制台工程(console application),并选择支持MFC。 2、在stdafx.h中加入头文件conio.h和winsock2.h。 3、在头文件中加入:#pragma comment(lib转载 2006-03-29 14:50:00 · 1629 阅读 · 0 评论 -
实例解析IPv6下的VC网络编程2
实例解析IPv6下的VC网络编程2实例篇 IPv6程序相对于IPv4改动并不大。其中主要的改动就是地址结构与地址解析函数。在RFC中详细说明了socket api 为适应IPv6所做的改动。而且windows平台与Linux平台在实现上也几乎是一样的。只不过头文件与支持程度等有所不同罢了(具体请参见RFC 2553与RFC 2292)。如读者有兴趣的话可以找RFC来看看,在这里就不再详细转载 2006-03-29 14:20:00 · 2193 阅读 · 0 评论 -
基于VC的WinSock网络编程实用宝典
基于VC的WinSock网络编程实用宝典来源: 天极网Windows Sockets是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Winsockets无疑是我们进行网络编程的利器。 在这个专辑中我整理在栏目中发表的关于WinSockets编程的文转载 2006-03-24 13:28:00 · 3029 阅读 · 2 评论 -
Google 技术
Google 的开发人员从一开始就意识到:要以最快的速度提供最精确的搜索结果,则需要一种全新的服务器设置。大多数的搜索引擎依靠少量大型服务器,这样,在访问高峰期速度就会减慢,而 Google 却利用相互链接的 PC 来快速查找每个搜索的答案。 这一创新技术成功地缩短了响应时间,提高了可扩展性,并降低了成本。这也是其他公司一直在效仿的技术。与此同时,Google 从未停止过对其后端技术的改进,以使其原创 2005-12-28 08:46:00 · 2189 阅读 · 0 评论 -
Unix和Windows跨系统通讯编程
本文介绍了套接字(Socket)的基本概念及编程技术,并结合实例说明在Unix和Windows下如何用套接字实现客户/服务器方式的通讯编程。摘 要 本文介绍了套接字(Socket)的基本概念及编程技术,并结合实例说明在Unix和Windows下如何用套接字实现客户/服务器方式的通讯编程。关键词 Berkeley Sockets Windows Sockets 通讯编程 一、 前言 随着Inter原创 2005-12-27 12:57:00 · 3835 阅读 · 0 评论