课程咨询: 400-996-5531 / 投诉建议: 400-111-8989

认识达内从这里开始

认真做教育 专心促就业

佛山IT技术—C# Socket通信三大问题是什么呢?
  • 发布:佛山达内培训
  • 来源:佛山达内培训
  • 时间:2017-05-05 13:34

<a style='color:blue' href='https://fs.tedu.cn'>佛山达内</a>培训

对于IT技术中的知识真的是包罗万象,在一个时间段就会出现一些新的技术,那么你对这些新技术你是怎么去看待的,在C# Socket通信中的一些知识你了解多少呢!接下来就一起和佛山达内IT培训的小编一起来看看这些知识点;

C# Socket通信三大问题之数据包不连续问题。

在TCP/IP等通信中,由于时延等原因,一个数据包被Socket做两次或多次接收,此时在接收第一个包后,必须保存到TSession的DatagramBuffer中,在以后一并处理

C# Socket通信三大问题包并发与重叠问题。

由于客户端发送过快或设备故障等原因,一次接收到一个半、两个或多个包文。此时,也需要处理、一个半、两个或多个包

C# Socket通信三大问题之数据包界限符问题。

根据原项目中交通部标准,在连续观测站中数据包中,使用﹤﹥两个字符表示有效数据包开始和结束。实际项目有各自的具体技术规范

先补充异步BeginReceive()回调函数EndReceiveData()中的数据包分合函数ResolveBuffer()。

下面是C# Socket通信三大问题的实例演示:

/// ﹤summary﹥

/// 1) 报文界限字符为﹤﹥,其它为合法字符,

/// 2) 按报文头、界限标志抽取报文,可能合并包文

/// 3) 如果一次收完数据,此时 DatagramBuffer 为空

/// 4) 否则转存到包文缓冲区 session.DatagramBuffer

/// ﹤/summary﹥

private void ResolveBuffer(TSession session, int receivedSize)

{

// 上次留下的报文缓冲区非空(注意:必然含有开始字符 ﹤,空时不含 ﹤)

bool hasBeginChar = (session.DatagramBufferLength ﹥ 0);

int packPos = 0; // ReceiveBuffer 缓冲区中包的开始位置

int packLen = 0; // 已经解析的接收缓冲区大小

byte dataByte = 0; // 缓冲区字节

int subIndex = 0; // 缓冲区下标

while (subIndex ﹤ receivedSize)

{

// 接收缓冲区数据,要与报文缓冲区 session.DatagramBuffer 同时考虑

dataByte = session.ReceiveBuffer[subIndex];

if (dataByte == TDatagram.BeginChar) // 是数据包的开始字符﹤,则前面的包文均要放弃

{

// ﹤前面有非空串(包括报文缓冲区),则前面是错包文,防止 AAA﹤A,1,A﹥ 两个报文一次读现象

if (packLen ﹥ 0)

{

Interlocked.Increment(ref _datagramCount); // 前面有非空字符

Interlocked.Increment(ref _errorDatagramCount); // 一个错误包

this.OnDatagramError();

}

session.ClearDatagramBuffer(); // 清空会话缓冲区,开始一个新包

packPos = subIndex; // 新包起点,即﹤所在位置

packLen = 1;// 新包的长度(即﹤)

hasBeginChar = true; // 新包有开始字符

}

else if (dataByte == TDatagram.EndChar) // 数据包的结束字符 ﹥

{

if (hasBeginChar) // 两个缓冲区中有开始字符﹤

{

++packLen; // 长度包括结束字符﹥

// ﹥前面的为正确格式的包,则分析该包,并准备加入包队列

AnalyzeOneDatagram(session, packPos, packLen);

packPos = subIndex + 1; // 新包起点。注意:subIndex 在循环最后处 + 1

packLen = 0; // 新包长度

}

else // ﹥前面没有开始字符,则认为结束字符﹥为一般字符,待后续的错误包处理

{

++packLen; // hasBeginChar = false;

}

}

else // 非界限字符﹤﹥,就是是一般字符,长度 + 1,待解析包处理

{

++packLen;

}

++subIndex; // 增加下标号

} // end while

if (packLen ﹥ 0) // 剩下的待处理串,分两种情况

{

// 剩下包文,已经包含首字符且不超长,转存到包文缓冲区中,待下次处理

if (hasBeginChar && packLen +

session.DatagramBufferLength ﹤= _maxDatagramSize)

{

session.CopyToDatagramBuffer(packPos, packLen);

}

else // 不含首字符,或超长

{

Interlocked.Increment(ref _datagramCount);

Interlocked.Increment(ref _errorDatagramCount);

this.OnDatagramError();

session.ClearDatagramBuffer(); // 丢弃全部数据

}

}

}

C# Socket通信三大问题之分析包文AnalyzeOneDatagram()函数代码补充如下:

/// ﹤summary﹥

/// 具有﹤﹥格式的数据包加入到队列中

/// ﹤/summary﹥

private void AnalyzeOneDatagram(

TSession session, int packPos, int packLen)

{

if (packLen + session.DatagramBufferLength ﹥ _maxDatagramSize)

// 超过长度限制

{

Interlocked.Increment(ref _datagramCount);

Interlocked.Increment(ref _errorDatagramCount);

this.OnDatagramError();

}

else // 一个首尾字符相符的包,此时需要判断其类型

{

Interlocked.Increment(ref _datagramCount);

TDatagram datagram = new TDatagram();

if (!datagram.CheckDatagramKind())

// 包格式错误(只能是短期BG、或长期SG包)

{

Interlocked.Increment(ref _datagramCount);

Interlocked.Increment(ref _errorDatagramCount);

this.OnDatagramError();

datagram = null; // 丢弃当前包

}

else // 实时包、定期包,先解析数据,判断正误,并发回确认包

{

datagram.ResolveDatagram();

if (true) // 正确的包才入包队列

{

Interlocked.Increment(ref _datagramQueueCount);

lock (_datagramQueue)

{

_datagramQueue.Enqueue(datagram); // 数据包入队列

}

}

else

{

Interlocked.Increment(ref _errorDatagramCount);

this.OnDatagramError();

}

}

}

session.ClearDatagramBuffer(); // 清包文缓冲区

}

C# Socket通信三大问题之TSession的拷贝转存数据包文的方法CopyToDatagramBuffer()代码如下:

/// ﹤summary﹥

/// 拷贝接收缓冲区的数据到数据缓冲区(即多次读一个包文)

/// ﹤/summary﹥

public void CopyToDatagramBuffer(int startPos, int packLen)

{

int datagramLen = 0;

if (DatagramBuffer != null) datagramLen =

DatagramBuffer.Length;

// 调整长度(DataBuffer 为 null 不会出错)

Array.Resize(ref DatagramBuffer,

datagramLen + packLen);

// 拷贝到数据就缓冲区

Array.Copy(ReceiveBuffer, startPos,

DatagramBuffer, datagramLen, packLen);

}

代码中注释比较详细了,下面指出C# Socket通信三大问题实例开发思路:

使用TSession会话对象的字节数组ReceiveBuffer保存BeginReceiver()接收到的数据,使用字节数组DatagramBuffer保存一次接收后分解或合并的剩下的包文。本项目中,由于是5分钟一个包,正常情况下不需要用到DatagramBuffer数组

处理ReceiveBuffer中的字节数据包时,先考虑DatagramBuffer是否有开始字符﹤。如果有,则当前包文是前个包文的补充,否则前个包文是错误的。正确的包文可能存在于两个缓冲区中,见分析函数AnalyzeOneDatagram()

分析完接收数据包后,剩下的转存到DatagramBuffer中,见函数CopyToDatagramBuffer()

设计时考虑的另一个重要问题就是处理速度。如果自动观测站达到100个,此时5*60=300秒钟就有100个包,即每3秒种一个包,不存在处理速度慢问题。但是,真正耗时的是判断包是否重复!特别地,当设备故障时存在混乱上传数据包现象,此时将存在大量的重复包。笔者采用了所谓的区间判重算法,较好地解决了判重速度问题,使得系统具有很好的可伸缩性(分析算法的论文被EI核心版收录,呵呵,意外收获)。事实上,前年的交通部接收服务器还不具备该项功能,可能是太费时间了。

在这里佛山达内的小编介绍的C# Socket通信三大问题的基本内容就向你介绍到这里了,希望对你了解和学习C# Socket通信三大问题有所帮助。如果大家想了解更多的IT技术和知识,欢迎来佛山达内培训机构进行更多的咨询和了解IT技术;

<  上一篇:如何掌握Java中String的应用知识和技巧?
下一篇:Serverless应用,后端小程序的未来将会什么?  >
相关推荐
最新资讯
免费试听课程
  • 全部课程
  • IT课程
  • 设计课程
  • 运营课程
Free courses
最新开班时间
  • 北京
  • 上海
  • 广州
  • 深圳
  • 南京
  • 成都
  • 武汉
  • 西安
  • 青岛
  • 天津
  • 杭州
  • 重庆
  • 哈尔滨
  • 济南
  • 沈阳
  • 合肥
  • 郑州
  • 长春
  • 苏州
  • 长沙
  • 昆明
  • 太原
  • 无锡
  • 石家庄
  • 南宁
  • 佛山
  • 珠海
  • 宁波
  • 保定
  • 呼和浩特
  • 洛阳
  • 烟台
  • 运城
  • 潍坊
  • 开课名称
  • 开班时间
  • 抢座
  • 咨询
  • 开课名称
  • 开班时间
  • 抢座
  • 咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 人工智能工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 数据分析与商业智能
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 数据分析与商业智能
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 新媒体电商运营
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 云计算全栈开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • Java全链路开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AGI商业设计变现
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 网络安全工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • C++物联网工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 软件测试工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • AI大模型全栈工程师
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • 鸿蒙原生应用开发
    • 7月31日
    • 火热抢座中
    • 立即咨询
    • VFX商业视效设计
    • 7月31日
    • 火热抢座中
    • 立即咨询
预约申请试听课
收起