有限状态机是逻辑单元内部的一种高效编程方法。有的应用层协议头部包含数据包类型字段,每种类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑,代码如下:STATE_MACHINE(Packahe _pack){PackageType _type = _pack.GetType();switch (_type){case type_A:pr …
基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:connect()函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让 Linux 内核自动完成 TCP 三次握手连接(三次握手详 …
1、UDP编程1.1、UDP编程-创建套接字#include <syssocket.h>int socket(int family,int type,int protocol);功能创建一个用于网络通信的socket套接字(描述符)参数family:协议族(AF_INET、AF_INET6、PF_PACKET等)type:套接字类(SOCK_ST …
01. TCP概述传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得 …
Demo本部分代码实现参考可能是最接地气的 IO 多路复用小结 (https:mengkang.net726.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)阻塞式网络编程接口#include <stdio.h>#include <unistd …
协程的起源问题:协程存在的原因?协程能够解决哪些问题?在我们现在CS,BS开发模式下,服务器的吞吐量是一个很重要的参数。其实吞吐量是IO处理时间加上业务处理。为了简单起见,比如,客户端与服务器之间是长连接的,客户端定期给服务器发送心跳包数据。客户端发送一次心跳包到服务器,服务器更新该新客户端状态的。心跳包发送的过程,业务处理时长等于IO读取(RECV系统调用 …
前言本文研究如何在AP模式下进行TCP Client通信,所谓AP模式是说模块起来一个softAP热点,可以供其他WIFI设备连接,当其他设备连接成功后,另WIFI模块作为客户端,局域网中其他设备作为服务端进行TCP数据通信。一、理论基础本节要处理的有两个问题,其一是如何利用RT_Thread起来一个softAP,其二是如何使用Socket套接字编程搞定TC …
这篇教程主要是告诉大家如何利用TCP和HTTP协议来完成网站的搭建。首先你需要有CC++语言基础,且有服务器、客户端概念,如果你了解TCP或者HTTP协议的话,那么将会帮助你更快的学会如何搭建个人网站。该服务器使用的Windows中的IOCP模式来进行,我将put代码中最为重要的几个部分1.准备好HTML文件,也就是你所要发布的网页,可以是静态网页也可以是动 …
RTP数据包构成格式:RTP数据包一般由:Header+有效载荷数据:构成,Header一般为12字节,有效载荷数据则可以是音频数据,h264码流,PS码流等等RTP头部组成 头部一般至少包含12个固定字节,也包括若扩展干字节。V(2bit)+P(1bit)+X(1bit)+CC(4bit)+M(1bit)+PT(7bit)+SN(16bit)+timest …
C++ 作为一门底层高性能语言,拥有广泛的应用领域,从系统开发、游戏引擎、图形图像、嵌入式到人工智能等,都能看到它的身影。本文为你整理并实操了 20 个 必收藏的经典 C++ 案例,帮助你提升实战水平与编程逻辑。 一、基础语法与算法类案例案例1:斐波那契数列(递归 + 动态规划)int Fibonacci(int n) { if (n <= 1) re …