
网络编程
文章平均质量分 70
网络编程
机载软件与适航
全网同名,公众号【机载软件与适航】主理人
展开
-
DDS基本概念介绍及使用实例
在DDS中,数据类型通常使用IDL文件定义。例如,我们定义一个简单的数据类型MyDatalong id;编写完IDL文件后,使用DDS提供的代码生成工具(如rtiddsgen)将其转换为C代码。DDS作为一种强大的分布式通信中间件,通过其发布-订阅模型、大量的QoS选项以及去中心化的架构,提供了高度灵活性和实时性。通过本文的介绍,你可以了解到DDS的核心概念、优势以及如何在C语言中集成DDS通信。原创 2024-09-06 22:30:06 · 5851 阅读 · 0 评论 -
Windows中的共享内存的使用方法
在 Windows 操作系统中,共享内存是用于在多个进程之间共享数据的一种机制。你可以使用 Windows API 创建共享内存区域,从而在不同的进程之间传递数据。原创 2024-09-06 20:09:08 · 752 阅读 · 0 评论 -
C/C++网络编程在windows将socket设置为非阻塞
在 socket编程中,对于socket的读写默认都是阻塞的,但有的情况我们需要将其设置为非阻塞,比如做多路复用,或者通过select实现连接超时等功能,将socket设置为非阻塞,在windows和linux中的接口有所不同,在windows中使用ioctlsocket函数,在linux中使用 fcntl函数,下面我们做一个跨平台设置阻塞的函数SetBlock。原创 2023-04-01 22:10:06 · 2576 阅读 · 0 评论 -
socket 的阻塞模式和非阻塞模式
在应用程序 A 与 应用程序 B 建立了 TCP 连接之后,假设应用程序 A 不断调用 send 函数,这样数据会不断拷贝至对应的内核缓冲区中,如果 B 那一端一直不调用 recv 函数,那么 B 的内核缓冲区被填满以后,A 的内核缓冲区也会被填满,此时 A 继续调用 send 函数会是什么结果呢?上面的示例验证了如果一端一直发数据,而对端应用层一直不取数据(或收取数据的速度慢于发送速度),则很快两端的内核缓冲区很快就会被填满,导致发送端调用 send 函数被阻塞。原创 2023-04-01 21:28:28 · 5684 阅读 · 0 评论 -
Windows下socket编程怎么获取本机ip
上面的程序仅仅获取一个ip, 那要获取所有ip, 怎么办呢?这个实测有点问题,不会获取所有ip,也不是第一块网卡的ip。使用IDE新建一个C语言程序进行编写。原创 2023-04-01 21:10:33 · 846 阅读 · 0 评论 -
Windows下的socket使用教程和示例
已剪辑自: http://c.biancheng.net/view/vip_5865.html本节讲解 Windows 下 DLL 的加载,学习 Linux Socket 的读者可以跳过。原创 2023-04-01 20:49:00 · 1766 阅读 · 0 评论 -
IP、MAC和端口号——网络通信中确认身份信息的三要素
已剪辑自: http://c.biancheng.net/view/2132.html在茫茫的互联网海洋中,要找到一台计算机非常不容易,有三个要素必须具备,它们分别是 IP 地址、MAC 地址和端口号。原创 2023-04-01 20:07:17 · 203 阅读 · 0 评论 -
QT中UDP通信接收一般是使用周期还是触发式
无论使用周期式还是触发式,都需要使用QUdpSocket类进行UDP通信接收。触发式需要将QUdpSocket的readyRead信号与槽函数连接起来,在有数据到达时自动调用槽函数进行处理。触发式接收是指使用Qt的事件循环机制,当有数据到达时,操作系统会产生一个事件,Qt会自动调用相应的槽函数进行处理。周期式接收是指使用QTimer定时器周期性地检查是否有数据到达,然后进行数据处理。这种方式适用于需要实时处理数据的情况,但也会增加CPU负载。在Qt中,UDP通信接收可以使用周期式或触发式方式进行。原创 2023-03-25 12:14:33 · 636 阅读 · 0 评论 -
UDP通信接收应该使用周期还是触发式——来自chatGPT的回答
UDP是一种无连接协议,它不保证数据的可靠性和传输顺序,因此,当接收任务想要接收到数据时,需要等待网络中的数据到达。如果使用周期性的方式接收数据,那么在网络中没有数据到达时,接收任务将不停地轮询,造成浪费系统资源的问题。相反,使用触发式的方式接收UDP数据将会更加高效。有一个任务在使用UDP周期的发送数据,另外一个任务使用UDP接收数据,这个接收数据的任务应该使用周期的接收方式还是触发式。对于UDP数据的接收,建议使用触发式(事件驱动)的方式,而不是周期性的方式。你能分别给出周期和触发式的代码示例吗?原创 2023-03-25 12:13:40 · 404 阅读 · 0 评论 -
告知你不为人知的 UDP:UDP重难点详解
已剪辑自: https://cloud.tencent.com/developer/article/1004554作者介绍:黄日成,手Q游戏中心后台开发,腾讯高级工程师。从事C++服务后台开发4年多,主要负责手Q游戏中心后台基础系统、复杂业务系统开发,主导过手Q游戏公会、企鹅电竞App-对战系统等项目的后台系统设计,有丰富的后台架构经验。原创 2023-03-25 12:07:29 · 864 阅读 · 0 评论 -
Windows下使用C语言的周期多路UDP编程发送和接收网络调试助手数据
可以看出代码同时使用两路UDP和网络调试助手双工通信起来了。原创 2022-12-21 20:20:56 · 901 阅读 · 0 评论 -
Windows下使用C语言的周期UDP编程同时发送和接收网络调试助手数据
【代码】Windows下使用C语言的周期UDP编程同时发送和接收网络调试助手数据。原创 2022-12-21 20:06:39 · 787 阅读 · 0 评论 -
Windows下使用C语言的UDP编程接收网络调试助手发送的数据
因为代码中绑定了ip地址和端口,因此在网络调试助手设置的目标机地址和端口需要设置的和代码中一样。代码端接收到了网络调试助手发送过来的数据。原创 2022-12-21 19:35:17 · 1491 阅读 · 0 评论 -
Windows下使用C语言创建定时器并周期和网络调试助手通信
*fuEvent:**定时器的类型,分为以下两种类型: TIME_ONESHOT:当经过 uDelay 时间之后,只调用一次 TIME_PERIODC:周期执行,每经过 uDelay 时间,就调用一次**返回值:**当函数执行成功,就返回该定时器的ID,如果失败则返回NULLcomment(,)不过,在MSDN上看到, timeSetEvent 函数已经过时了,现在都在用。原创 2022-12-11 22:10:48 · 1411 阅读 · 0 评论 -
Windows下C语言程序和网络调试助手通信
下面我们简单介绍一下网络调试助手的使用。这样两个网络调试助手之间就可以进行UDP通信了。原创 2022-12-11 20:26:28 · 1652 阅读 · 0 评论 -
计算机端口的安全知识大全,整的明明白白!
已剪辑自: https://cloud.tencent.com/developer/article/1406267“看了网安众安的这篇计算机端口文章,你要是学不会你来打我……”——鲁迅没有说过端口是计算机的大门,计算机的安全应该从端口开始说起。关于端口安全知识,我计划从六部分说起:端口的基础知识、端口的使用查看、端口的打开关闭、端口的转发和映射、由端口分析恶意攻击以及常用的端口安全工具。有人问了,为什么要分为六部分?是向六学致敬也要开花吗?可能你看完全文就知道为什么这么“6”了!一、端口的基础知识1、什么是原创 2022-12-06 23:07:44 · 2938 阅读 · 0 评论 -
Windows下的socket演示程序及加载DLL
已剪辑自: http://c.biancheng.net/view/2129.html上节演示了 Linux 下的 socket 程序,这节来看一下 Windows 下的 socket 程序。同样,server.cpp 为服务器端代码,client 为客户端代码。服务器端代码 server.cpp:客户端代码 client.cpp:将 server.cpp 和 client.cpp 分别编译为 server.exe 和 client.exe,先运行 server.exe,再运行 client.exe,输原创 2022-12-04 22:47:27 · 637 阅读 · 0 评论 -
基于UDP的服务器端和客户端
已剪辑自: http://c.biancheng.net/view/2358.htmlTCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复 ACK 包确认,多种机制保证了数据能够正确到达,不会丢失或出错。UDP 是非连接的传输协议,没有建立连接和断开连接的过程,它只是简单地把数据丢到网络中,也不需要 ACK 包确认。UDP 传输数据就好像我们邮寄包裹,邮寄前需要填好寄件人和收件人地址,之后送到快递公司即可,但包裹是否正确送达、是否损坏我们无法得知,也无法保原创 2022-12-04 22:34:40 · 1750 阅读 · 0 评论 -
C语言Socket编程,实现两个程序间的通信
已剪辑自: https://www.cnblogs.com/fisherss/p/12085123.html在mooc上找到的,使用Socket客户端client和服务端server通信的流程图👇服务端需要 "两个"套接字 :1.服务端套接字serverSocket2.客户端connect连接请求时,发来的套接字clientSocket按流程图来看, server服务端主要就是实现下面几个步骤:所以服务端代码可以这样写👇在CSDN上copy的,原来的代码需要在linux环境下运行,在windows下需原创 2022-12-04 22:08:20 · 2888 阅读 · 0 评论 -
QT和网络调试助手之间的UDP通信
同样,服务器也不与客户端接收连接,只负责调用接收函数,等待来自某客户端的数据到达。UDP(User Data Protocol),用户数据报协议,是一种简单轻量级、不可靠、面向数据报、无连接的传输层协议,可以应用在可靠性不是十分重要的场合,如短消息、广播信息等。其实,UDP没有特定的server端 和 client,简单来说就是向特定的ip发送报文,所以,也可以分为发送端和接收端。例如,常用的聊天工具------腾讯QQ软件就是使用UDP协议发送信息的,因此有时会出现收不到信息的情况。原创 2022-11-29 20:57:23 · 1666 阅读 · 3 评论 -
在MacOS上实现两个网络调试助手的UDP通信测试
3.找到 一个叫 “MacOS”的文件夹下的终端程序:双击它 就可以多开;4.如图,开了三个qq,每一个多开的软件就会附带一个 终端程序,不要关闭它,否则多开的软件也会关闭。因此本文记录一下怎么在MacOS上实现两个网络调试助手的UDP通信测试。下面我们需要分别给两个网络调试助手设置本地端口号、目标IP、目标端口号。网络调试助手会自动获取本机ip,两个网络调试助手获取的ip是一样的。设置完成之后,点击发送,两个网络调试助手都能收到对方发送的数据。因为是两个网络调试助手之间的通信,因此我们需要双开该软件。原创 2022-11-29 20:02:12 · 3837 阅读 · 0 评论 -
在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
城门值守的路由器,发现了这个小兄弟数据包原来是找城内的人,于是它就将数据包送进了城内,再经由城内的交换机帮助下,最终转发到了目的地了。此时,遇上了 TCP 的 数据包激动表示:“太好了,碰到了可靠传输的 TCP 传输,它给我加上 TCP 头部,我不在孤单了,安全感十足啊!的 MAC 地址就有点复杂了,只要告诉以太网对方的 MAC 的地址,以太网就会帮我们把包发送过去,那么很显然这里应该填写对方的 MAC 地址。上下关系是有一定的规则的,上面的部分会向下面的部分委托工作,下面的部分收到委托的工作并执行。原创 2022-11-28 22:42:28 · 900 阅读 · 0 评论 -
分布式系统
在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式系统的例子是万维网fromModule=lemma_inlink)),在万维网中,所有的一切看起来就好像是一个文档(Web。原创 2022-09-03 23:03:51 · 704 阅读 · 0 评论 -
计算机网络入门基础
分享一篇我看过最好的文章:如果让你来设计网络,你会把它弄成啥样?原创 2021-07-08 23:10:17 · 219 阅读 · 0 评论 -
vxworks中的socket网络编程
csdn太拉了,图床里的图都加载不进来,那为啥要支持markdown呢https://raw.githubusercontent.com/xkyvvv/blogpic/main/pic1/image-20210711223234925.png原创 2021-07-24 23:02:32 · 1244 阅读 · 1 评论 -
【网络编程学习记录12】在socket编程中使用域名
【网络编程学习记录12】在socket编程中使用域名申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。客户端中直接使用 IP 地址会有很大的弊端,一旦 IP 地址变化(IP 地址会经常变动),客户端软件就会出现错误。而使用域名会方便很多,注册后的域名只要每年续费就永远属于自己的,更换 IP 地址时修改域名解析即可,不会影响软件的正常原创 2021-07-21 00:22:02 · 682 阅读 · 1 评论 -
【网络编程学习记录11】网络数据传输时的大小端问题
【网络编程学习记录11】网络数据传输时的大小端问题申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。不同 CPU 中,4 字节整数 1 在内存空间的存储方式是不同的。4 字节整数 1 可用 2 进制表示如下:00000000 00000000 00000000 00000001有些 CPU 以上面的顺序存储到内存,另外一些 CPU转载 2021-07-21 00:20:49 · 1026 阅读 · 0 评论 -
【网络编程学习记录10】socket编程实现文件传输功能
【网络编程学习记录10】socket编程实现文件传输功能申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。这节我们来完成 socket 文件传输程序,这是一个非常实用的例子。要实现的功能为:client 从 server 下载一个文件并保存到本地。编写这个程序需要注意两个问题:文件大小不确定,有可能比缓冲区大很多,调用一次 wr转载 2021-07-21 00:19:41 · 640 阅读 · 0 评论 -
【网络编程学习记录9】TCP协议的粘包问题(数据的无边界性)
【网络编程学习记录9】TCP协议的粘包问题(数据的无边界性)申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。上节我们讲到了socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据。也就是说,read()/recv() 和 write()/sen原创 2021-07-21 00:18:12 · 269 阅读 · 1 评论 -
【网络编程学习记录8】socket缓冲区以及阻塞模式详解
【网络编程学习记录8】socket缓冲区以及阻塞模式详解申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。在《socket数据的接收和发送》一节中讲到,可以使用 write()/send() 函数发送数据,使用 read()/recv() 函数接收数据,本节就来看看数据是如何传递的。socket缓冲区每个 socket 被创建后,原创 2021-07-21 00:16:55 · 290 阅读 · 0 评论 -
【网络编程学习记录7】如何让服务器端持续不断地监听客户端的请求?
【网络编程学习记录7】如何让服务器端持续不断地监听客户端的请求?申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。前面的程序,不管服务器端还是客户端,都有一个问题,就是处理完一个请求立即退出了,没有太大的实际意义。能不能像Web服务器那样一直接受客户端的请求呢?能,使用 while 循环即可。修改前面的回声程序,使服务器端可以不断响转载 2021-07-21 00:15:41 · 1003 阅读 · 0 评论 -
【网络编程学习记录6】使用socket编程实现回声客户端
【网络编程学习记录6】使用socket编程实现回声客户端申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。所谓“回声”,是指客户端向服务器发送一条数据,服务器再将数据原样返回给客户端,就像声音一样,遇到障碍物会被“反弹回来”。对!客户端也可以使用 write() / send() 函数向服务器发送数据,服务器也可以使用 read()转载 2021-07-21 00:14:31 · 498 阅读 · 0 评论 -
【网络编程学习记录5】send()/recv()和write()/read():发送数据和接收数据
【网络编程学习记录5】send()/recv()和write()/read():发送数据和接收数据申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。在 Linux 和 Windows 平台下,使用不同的函数发送和接收 socket 数据,下面我们分别讲解。Linux下数据的接收和发送Linux 不区分套接字文件和普通文件,使用 w转载 2021-07-21 00:12:59 · 496 阅读 · 0 评论 -
【网络编程学习记录4】listen()和accept()函数:让套接字进入监听状态并响应客户端请求
申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。对于服务器端程序,使用 bind() 绑定套接字后,还需要使用 listen() 函数让套接字进入被动监听状态,再调用 accept() 函数,就可以随时响应客户端的请求了。listen() 函数通过 listen() 函数可以让套接字进入被动监听状态,它的原型为:int list.原创 2021-07-16 00:45:10 · 462 阅读 · 0 评论 -
【网络编程学习记录3】bind()函数绑定套接字和connect()函数建立连接
申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。socket() 函数用来创建套接字,确定套接字的各种属性,然后服务器端要用 bind() 函数将套接字与特定的 IP 地址和端口绑定起来,只有这样,流经该 IP 地址和端口的数据才能交给套接字处理。类似地,客户端也要用 connect() 函数建立连接。bind() 函数bind(.转载 2021-07-16 00:43:52 · 445 阅读 · 0 评论 -
【网络编程学习记录2】socket()函数用法详解:创建套接字
申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。不管是 Windows 还是 Linux,都使用 socket() 函数来创建套接字。socket() 在两个平台下的参数是相同的,不同的是返回值。在《socket是什么》一节中我们讲到了 Windows 和 Linux 在对待 socket 方面的区别。Linux 中的一切都是文件.原创 2021-07-15 00:32:53 · 353 阅读 · 0 评论 -
【网络编程学习记录1】Linux下的socket演示程序
申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的socket编程入门:1天玩转socket通信技术(非常详细),该网站有很多好的编程学习教程,尤其是关于C语言的。和C语言教程一样,我们从一个简单的“Hello World!”程序切入 socket 编程。本节演示了 Linux 下的代码,server.cpp 是服务器端代码,client.cpp 是客户端代码,要实现的功能是:客户端从服务器读取一个字符串并打印出来。服务器端代码 server..原创 2021-07-15 00:30:54 · 399 阅读 · 0 评论 -
网络编程(socket)
分享一个网络编程的完整教程,网页版,看起来很方便:socket是什么?套接字是什么?原创 2021-07-08 23:16:31 · 204 阅读 · 0 评论