![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 75
460833359
这个作者很懒,什么都没留下…
展开
-
TCP/IP协议字段理解
TCP协议源/目的端口号:表示数据从哪个进程来,到哪个进程去序号:TCP将每个字节的数据都进行了编号称为序列号,接收端收到数据之后要发送确认序号给发送端。序号用于对字节流进行编址,例如序号是301,表示第一个字节的编号为301,携带的数据长度是100,下一个报文的编号就是401确认序号:期望收到的下一个报文段的序号,B收到A发来的一个报文段,序号是301,携带的数据长度是300,那么B发送给A的确认序号就是6014位头部长度:表示TCP头部有多少个4字节,所以TCP头部最大长度为15.转载 2022-03-14 18:07:22 · 4354 阅读 · 0 评论 -
socket开发:一台服务器同一端口同时在多个网卡上开启listen的误区理解
误区一:一个端口是否在服务器上只能开一次?socket开发中经常会发现,当前端口已被占用,貌似感觉一个端口在一台服务器上只能被打开一次,实际是端口和IP地址相关,一台电脑上如果配置多个IP,则每个IP都可以配置相同的端口。如本机两个网卡IP分别为192.168.100.73和10.32.91.197,可以分别在这个两个网卡上开800端口进行监听。误区二:为什么不指定监听在哪个ip上也能实现访问服务?在建立socket的时候,大多数情况是不需要指定本地服务器IP,而是使用INADDR_ANY,这样建立监转载 2022-03-10 20:59:41 · 1548 阅读 · 0 评论 -
终于把TCP协议与UDP协议给搞明白了
网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下IP地址、端口号、通信协议的相关知识。一、IP地址网络中的计算机使用IP地址来进行唯一标识,IP地址有IPv4和IPv6两种类型。IPv4采用十进制或二进制表示形式,十进制是一种比较常用的表示形式,如192.168.1.131,IPv6采用十六进制表示形式,一般不常用。如何查看IP地址相关信息:在Windows系统下,打开cmd,输入命令ipco转载 2021-11-18 10:36:39 · 270 阅读 · 0 评论 -
inet_pton
inet_pton是一个IP地址转换函数,可以在将点分文本的IP地址转换为二进制网络字节序”的IP地址,而且inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。头文件:windows下:#include <WS2tcpip.h>linux下:#include <sys/socket.h>#include <netinet/in.h>#include<arpa/inet.h>函数原型转载 2021-11-11 16:56:24 · 1340 阅读 · 0 评论 -
c语言实现简单的socket通信
一、通讯示意图二、函数详解1、socket()函数int socket(int domain, int type, int protocol);socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。正如可以给fopen的传入不同参数值,转载 2021-11-03 17:07:30 · 12884 阅读 · 0 评论 -
大端模式与小端模式、网络字节顺序与主机字节顺序 (经典)
大端模式与小端模式 一、概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。 先回顾两个关键词,MSB和LSB: MSB:Most Significant Bit ------- 最高有效位 LSB:Least Significant Bit ------转载 2015-12-16 19:56:29 · 728 阅读 · 0 评论 -
同步和异步的区别
答案一:1.异步传输 通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关系。起始位对应于二进制值 0,以低电平表示,占用 1 位宽度。停止位对应于二进制值 1,以高电平表示,占用 1~2转载 2015-07-30 21:36:35 · 333 阅读 · 0 评论 -
C++网络爬虫的实现——WinSock编程
写了一个网络爬虫,可以抓取网上的图片。需要给定初始网站即可。在vs2010中编译通过。需要使用多字节字符集进行编译,vs2010默认的是Unicode字符集。编译后,运行即可,有惊喜哦!!!爬虫原理从最开始的网址开始,在其中找到链接到其他网页的超链接,放到一个网页队列里面保存起来,找到该网页的所有图片,下载下来。转载 2015-07-17 21:04:07 · 859 阅读 · 0 评论 -
Socket网络编程常用的结构及函数小结
IP地址的作用是标示计算机的网卡地址,每台计算机都有一个IP地址;端口,是指计算机中为了标示在计算机中访问网络的不同程序而设的编号,并不是网卡接线的端口,而是不同程序的逻辑编号,并不是实际存在的;域名,是用来代替IP地址来标示计算机的一种直观名称,例如百度网站的IP地址是202.108.22.43,这个IP地址没有任何逻辑含义,不便记忆,而www.baidu.com是一个便于记忆的名称,用于代替这转载 2015-07-17 21:06:56 · 363 阅读 · 0 评论 -
C++获取本地计算机主机名和IP
#include using namespace std;#include "winsock2.h"#pragma comment(lib,"ws2_32.lib")void main(){//初始化:如果不初始化,以下代码将无法执行WSAData data;if(WSAStartup(MAKEWORD(1,1),&data)!=0){ cout}转载 2015-07-06 12:52:57 · 7856 阅读 · 2 评论 -
多线程(C++)临界区Critical Sections问题
多线程中用来确保同一时刻只有一个线程操作被保护的数据InitializeCriticalSection(&cs);//初始化临界区 EnterCriticalSection(&cs);//进入临界区 //操作数据 MyMoney*=10;//所有访问MyMoney变量的程序都需要这样写Enter.. Leave... LeaveCriticalSection(&cs);//转载 2015-07-03 22:26:39 · 962 阅读 · 0 评论