网络协议

趣谈网络协议(三)

泄露秘密 提交于 2021-02-01 05:28:24
我相信,只要对电脑有点入门的,都知道如何查询本地ip地址.在win中是ipconfig.linux中是ifconfig 如上图,192.168.1.117就是我的局域网地址.局域网内通过此ip就能访问我的电脑 再举一个场景,我们新装了宽带,买了路由器都知道访问地址是192.168.1.1 那这个IP又是为何而来 子网掩码又是啥东东呢.别急,接下来进入正题,你想要的我下面都会一一讲解 1.IP地址的分类 ip地址的大小为4个字节共32位以二进制的方式.每8位一个数字 总共分以下几类 比如A类地址第一位固定是0,那他的网络地址段就是00000001~01111111,用二进制的计算结果就是1~127之间,后面的主机地址每8位都是00000000~11111111,即0~255 所以就是上图所见的A类1.0.0.0~127.255.255.255 再说B类前八位的话10000000~10111111即128~191 C类就是11000000~11011111即192~223 2.公网、内网 公网,是供外部访问的地址.基本上是唯一. 内网,也可以理解为局域网.比如192.168.1.11 每个不同的公网,都可以用相同的内网 好比如解放路1号1栋6楼、解放路2号2栋6楼 。解放路N号N栋是公网.N楼是内网 那我们怎么确定两个地址之间是否在局域网呢,比如192.168.2.5、192.168

趣谈网络协议(四)

拈花ヽ惹草 提交于 2021-02-01 05:28:10
1.DHCP 在局域网中我们一般只要插上网线就被分配id并可以上网了,这是为啥呢。这里主要用到了DHCP协议 DHCP全拼 Dynamic Host Configuration Protocol.动态域名配置协议 首先,每台电脑都有一个网卡,就算你没有网络的情况下,网卡都有一个MAC地址 当接通网络后,主机要去哪获得一个ip地址呢.在同一网络里基本靠“吼”:有人吗,老子来了!暂且称之为DHCP discover 而ip管理者,就会回应它 DHCP SERVER 主机在刚开始的时候由于没有IP.所以使用IP地址0.0.0.0发送一个广播包,目的IP为255.255.255.255 广播包会封装到UDP里面,UDP封装到BOOTP里面。其实DHCP是BOOTP的增强版 在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我还没有 IP,谁能给租给我个 IP 地址! 格式就像这样: 如果一个网络管理员在网络里配置了DHCP Server的话,他就相当于这些IP的管理员,他就能知道这个新人。这个时候我们就可以体会到MAC的重要性了,当一台机器带着自己的MAC地址加入了一个网络,那么这个MAC就是网络里的唯一标识,如果连这个都重复的话那就没法玩下去了 接着ip管理员分配好的IP地址、子网掩码、网关地址、地址租用期这些把发给新人.暂且说为DHCP

Qt开发的UDP接收端

☆樱花仙子☆ 提交于 2020-03-02 07:18:07
上一篇已经说完了简单UDP发送端开发,参见我的博客:Qt开发的UDP发送端。 博文地址:https://my.oschina.net/marshal2bit/blog/803803 做完UDP发送端,我又尝试做了一个UDP接收端。先上图,做出来的样子如下: 一、开发环境(和上篇博文一样) 系统:Windows 7 专业版(64位) 软件:qt-opensource-windows-x86-mingw530-5.7.0(原来用Qt 5.2.1+完成的工程) 注:Qt下载链接http://download.qt.io/official_releases/qt/ 二、新建工程 见文章开头的博客链接。注意修改 .pro 文件 #------------------------------------------------- # # Project created by QtCreator 2016-12-03T18:32:29 # #------------------------------------------------- QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = udpEndpoint2 TEMPLATE = app SOURCES += main.cpp\

Qt开发的UDP发送端

喜夏-厌秋 提交于 2020-03-02 05:31:44
一、准备 (一)开发环境 系统:Windows 7 专业版(64位) 软件:qt-opensource-windows-x86-mingw530-5.7.0(原来用Qt 5.2.1+完成的工程) 注:Qt下载链接http://download.qt.io/official_releases/qt/ (二)知识准备 Qt 5入门请看书籍 《C++ Qt5 范例开发大全 》 (可通过网络搜索,也可以通过Qt交流QQ群获得)。 Qt创建工程请看百度教程: http://jingyan.baidu.com/article/7908e85c95d538af491ad274.html 网络传输协议知识,请自行脑补! 二、开发过程 (一)创建Qt 工程,命名udpEndpoint1(任何名字都可以,只要符合Qt文件命名规则) 创建没有严格按照步骤一步步来,就点一下关键的地方。 1. 选择 QWidget 基类 2. 创建完成 (二)打开 udpEndpoint1.pro ,找到代码行,就在正文第一行 QT += core gui 右边加上“ network ”,这一步非常重要,这样才能加载Qt中与网络有关的库(这是我自己的理解,不专业),不然后面程序运行会报错。修改如下: QT += core gui network 注:请注意一下.pro的内容和工程文件中头文件和源文件下的文件,后文中会用到。