我什么都不懂突然要让我写个套接字程序我当然是拒绝的,但是没有办法还是只有靠百度了。

首先是要学习套接字基础。一开始是照着书上写,结果书上是linux,编译不过也不知道为什么,以为我头文件漏了。百度了半天发现windows和linux不一样,啊教材为什么不早说,看不起windows?后来就哪里出问题哪里搜一下,还觉得只有vs才能编译过,又下了半天下了一个vs(好大啊),又复习了一下vs的用法,让我这个天天用DevC++的选手觉得甚是复杂。其实结果还不如直接搜windows套接字编程重新打一个。
要注意搜索的时候加上windows,百度上有很多资料。本来觉得对于C++还比较熟悉,但是换了一套函数之后就完全不知道该怎么写了呢。好在经过努力还是学会了。这一步大概会了如何在本地的两个powershell窗口通信,虽然试过连到别人的IP上,但是并没有成功。

项目中,老师给了一个物理层模拟软件,是干什么的呢?就是在本地的两个端口用udp传输比特流,也就正是“模拟物理层”的意思了。然后第一个任务就是要写程序实现控制每500ms发送一个随机数这样的功能,首先就是要链接到模拟器的udp端口。指导书上写的是打开物理层模拟软件配置端口,我以为就是直接打开自己把端口写上去。

然而并不是,起初就有一个疑惑就是,我这么配置一下,也没什么确认按钮,他怎么就把端口打开了。因为当时对于套接字不是很熟悉,老师给出的示例程序也不完整,以为是自己代码出了问题,时隔一周再看,自己创建的本地端口是没有问题,发送也成功了,但是没有收到目标端口的ACK消息,在模拟软件上改来改去也没有实现,然后就在怀疑这个模拟软件出了问题。他没有打开端口。到这里我才想到,是不是不能直接打开这个物理层模拟软件,要用老师给的一个一键启动exe?因为之前使用那个exe是直接读取保存好的配置文件然后直接开始运行,所以并没有想到会用在这里,而且他们已经完成了链接,我再用一个udp端口去链接,还连的上吗。但是不论如何要试一下,然后这个困扰了我一个多星期的令人崩溃的问题居然就这么好了??激动的我想记录一下这**的探索过程。

有几个新要求:

实现分帧封装,就是加头加尾
添加校验码
实现流量控制

学艺不精,起初只看懂了加校验码这个要求,相当于是写一个小模拟。模拟一下mod2意义下的除法,高精度除法很难写,但是这个mod2意义下的除法只需要异或就行了,非常的方便好写。然后实现一下改变数组长度,把余数添加到末尾就可以了。

不过跟算法还是有很大差别,想着自己写的是工程代码,不能瞎开空间,开始用char *s=new int[10];这种以前基本上没用过的动态开内存方法,然后试图使用.h文件,不过.h确实让我懵逼了一下,一直编译不过去(可能是因为visual studio事儿多),最后的话,明白了.h文件就是写函数声明的,对应的cpp文件是写实现的,这样写其他cpp文件的时候就可以直接把h文件include进来,就可以用了。
然后.h文件尽量不要包含别的.h文件,因为会出现重复定义的问题。因为这个问题编译不过,查了挺多资料,前后加#define也试过,加#pragma也试过,但是就是会出现重复的问题,所以索性不包含了。而且还要在visual studio里面改一下,把pch.cpp改为"创建预编译头",pch.h是“加载预编译头”,这样才能编译过。

分帧封装是小组同学写的,因为这周末去厦门CCPC了,到处旅游跑着还是比较累,也花钱,不过第一次看到了海也算是比较震撼和开心。

记一次计通项目(网元设计)(更新中)相关推荐

  1. Springboot项目如何设计接口中敏感字段模糊查询?

    目录 前言 场景分析 实现方案 环境配置 依赖配置 代码实现 总结 前言 在<Springboot项目如何设计接口中敏感字段的加密.解密>和<Springboot项目如何设计接口中敏 ...

  2. 计网/数据库面试题(更新中ing~~)

    计网/数据库面试题(更新中ing~~) <计算机网络> 1. OSI七层模型.设备 (传输层)协议的多路分用和复用 2. TCP/IP四层模型==五层模型 (传输层)TCP和UDP协议对比 ...

  3. 沉睡者 - 网赚创业VIP项目课程-持续更新中...

    沉睡者 - 网赚创业VIP项目课程-持续更新中... 不管在线下还是线上,都尽量只做有积累可持续的项目,否则就容易进入到一个找项目做项目死项目之后,不断重复找项目,不断重复做苦力没有发展的死循环. 在 ...

  4. hapi和typescript构建项目(正在更新中)

    1.初始化项目 初始化 yarn init 生成配置文件tsconfig.json tsc --init 注意:将outDir设置为"outDir": "dist&quo ...

  5. Vue3项目技巧(更新中ing)

    文章目录 axios封装 http.js testAPI.js main.js测试 如果项目中需要多个baseURL 自动导入scss文件 案例文件 使用案例 引入aliyun图标库 先看效果 查看官 ...

  6. 你画我猜项目实战【更新中】

    同步视频教程>>https://www.bilibili.com/video/BV1AP4y137Cj/ 一.项目演示 二.整体说明 前端界面实现:小程序 后端服务:nodejs(一般的a ...

  7. Linux部署Python项目(持续更新中)

    项目部署 ​ 项目部署对恩操作通常是由运维人员来进行统一管理装配的,但是对于一个开发人员来讲,基础的项目部署还是要会的. ​ 这里我主要讲解python的项目是如何部署的,至于项目哪里来的,这就要看观 ...

  8. 大数据集群中数据互相导通流程汇总(持续更新中)

    X:原理上不存在这种流程或者没有必要. 加粗:数据库或数据仓库 非加粗:表示文件格式 ☆:表示重点,正在整理中 左侧列:数据源头 上侧行:数据传递终点   Hbase HDFS json txt My ...

  9. 高通Audio缩写(不断更新中...)

    ASM:Audio Stream Manager 音频流管理 ADM:Audio Device Manager 音频设备管理 AFE:Audio Front End 音频前端 ABE:Audio Be ...

最新文章

  1. mysql数据库实验报告jdbc_Jdbc连接数据库实验报告(2)
  2. 在win7下安装VC6.0
  3. Linux常用命令4(grep、df、du、awk、su、ll)
  4. ylbtech-Unitity-CS:AnonymousDelegates
  5. mysql 数据库设计实例_一个简单数据库设计例子
  6. 程序员日报周报月报 模板
  7. 道法演讲之马云从事教育
  8. 非常全面的IReport的使用
  9. 牙疼怎么快速止痛,三招解决牙痛立竿见影
  10. 计算机无法识别游戏手柄,windows10系统下游戏手柄无法识别或工作怎么解决
  11. 计算机应用系特色活动,职教桥:用匠心打造计算机应用专业特色课程体系
  12. 研究日记:虚拟歌姬自动调教之歌曲音频切割的问题
  13. 全民推荐时代已经到来!SaaS联盟推广计划如何开展?
  14. Vue使用axios处理后端数据流,导出excel
  15. 浅析瞬态抑制二极管双向tvs管
  16. 线性结构-前缀和和差分
  17. windows server2012 r2修改用户名
  18. 微信seo搜索精准引流怎么做呢?(案例效果图)
  19. autodesk许可证服务器,Autodesk 网络许可不可用怎么办?更改或重置Autodesk产品2020版或更高版本的网络许可服务器...
  20. 可视化IDE | 快速高效制作可视化大屏~

热门文章

  1. 蚂蚁金服准备上市,财务自由的声音还是躺赚的落幕?
  2. avue中地图使用实现地图的联动_7.1地图组件
  3. (转)《杂 文》 之 教你制作一份属于自己的简历
  4. hive自定义分区器
  5. Android使用RtmpDump进行RTMP推流介绍
  6. 计算机cpu性能过剩吗,选购电脑如何避免CPU性能过剩、显卡不够用?只需记住一个口诀...
  7. Android中Parcelable接口的应用
  8. matlab中文乱码问题
  9. 变电站综合自动化系统如何提高综合性自动化功能?
  10. 台式计算机截图快捷键,台式/笔记本电脑截图快捷键是哪个?