首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

网络数据包的打包

2012-05-04 
求教:网络数据包的打包如果用INDY的UDP,大家是如何讲数据包打包,然后发送的?用什么方式好呢?用数组,读取数

求教:网络数据包的打包
如果用INDY的UDP,大家是如何讲数据包打包,然后发送的?用什么方式好呢?
用数组,读取数组头来判断消息类型,服务器做出相应出来,还有什么方法呢?

[解决办法]
简单地讲,每个数据前面加一个关键字,用来确实该数据包由哪个过程进行相应,
比如:1就用 LogonProc处理,2-就用ChangePass相应 and more...
这样就建立对应关系了,至于操作上,可以用PAnsiChar和Move/CopyMeory来完成,也可以简单地用AnsiString,这个需要些技巧,不过用好了很省事,可以不用GetMem,FreeMem,两片内存相加直接用S1+S2,很省事,不过有些注意事项,比如,常量字符串,写内存要出错。用AnsiString时要用大量的内存强转,还是要认真才行
[解决办法]
自己定义协议 
一般可以这样 协议类型(int类型即可) 数据长度(int类型即可) 用户唯一标识(可网卡号,可用户ID)
如果要分包发差处理 还要加个 包序号 每个包的大小最好一样 后面 你要发送的数据

热点排行