C# TCP网络编程问题

向多条绿色裤衩努力 2012-02-07 11:39:49
现在的需求是编写的客户端发送一个命令请求,响应成功服务端返回多个数据报文(分开的数据报文),且返回的数据报文是不

固定的。所编写的客户端需要对接收到的每一个数据报文分开处理。

实现方式1:假设知道有多少个报文的情况下

ns.Write(byteData, 0, byteData.Length);

byte[] byteRecpt = new byte[1024];
ns.Read(byteRecpt, 0, byteRecpt.Length);

byte[] byteRecpt2 = new byte[1024];
ns.Read(byteRecpt2, 0, 1024);

byte[] byteRecpt3 = new byte[1024];
ns.Read(byteRecpt3, 0, 1024);


实现方式2:不知道多少个报文的代码,需另开启一条线程去接收
private void RecieveDatas()
{
while (true)
{
if (tcpClient == null || !tcpClient.Connected) return;

byte[] datas = new byte[1024];
ns.Read(datas, 0, 1024);
}
}

现在的问题是方式1不实际,方式2接收到的数据是所有的报文存到一起了。

而我需要的是服务返回第一个报文需要做处理,返回的第二个报文做不同的处理,返回的第三个报文可能又有不同处理。。。。

TCP&UDP测试工具 这个软件就能做分开处理,不管服务端返回多少报文,在显示报文数据的时候接收一条显示一条,而不是接

收完了才显示。
...全文
208 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
烟波钓 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 jarun 的回复:]
而我需要的是服务返回第一个报文需要做处理,返回的第二个报文做不同的处理,返回的第三个报文可能又有不同处理。。。。

[/Quote]
报文中附上被处理的方式
baichangle 2012-02-10
  • 打赏
  • 举报
回复
搞个集合
Queue<byte[]> mybyteslist = new Queue<byte[]>();
  • 打赏
  • 举报
回复
顶。。。希望有牛牛出现
  • 打赏
  • 举报
回复
有线网络用方式2是可以的,无线不可以。
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧