佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1409|回复: 7

关于网络数据包

[复制链接]
发表于 26-6-2006 12:08 AM | 显示全部楼层 |阅读模式
良久前开发的 multiuser server 终于进入最后的阶段,过后就可以进入测试阶段了。
不过在这之前发现一个严重的问题——就是数据包。

由于会可能有 2 个或更多的数据同时在 pending buffer 里;也可能数据被分为几个数据包来发送,而数据包还没齐。
所以需要把它们分开或结合。
目前小章鱼是用特别符来区分一个数据的结束与否,如:
this is first message%this is second
遇到 % 是就断定为一个完整数据。

不过似乎有些微妙的问题(目前还搞不清楚……,觉得因该是 read buffer 的限定不足,无法配合断定方程)

想到的另一方法就是依指令来限定每个数据的长度,
不过这方法在扩充时似乎不怎么灵活。

不知各位是用何种方法?
(还是有更简单的方法来断定)

还有,就是对大数据,使用压缩值得吗?


-----------------------------------------------------------
哈哈哈,早上起身,找不到贴子,还以为夜里睡得迷糊,梦见自己起来发帖。
原来是发错地方了

不过在多人游戏开发也有用到吧。
如果不合适这里,麻烦版主操作一下。

[ 本帖最后由 sson 于 26-6-2006 06:56 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 28-6-2006 10:06 AM | 显示全部楼层
这主题适合在此讨论,尤其是用于多人游戏或线上游戏。
回复

使用道具 举报

发表于 28-6-2006 01:20 PM | 显示全部楼层
通常我们都是使用<header>...<footer>来define 一个package 的开和关.
回复

使用道具 举报

 楼主| 发表于 28-6-2006 10:52 PM | 显示全部楼层
白日梦 可是这里比应用软件研发区冷多了

exiang 盼了好久,你终于出现了,呵呵。
小章鱼目前也是用这种格式 <header> 为特殊指令码 <footer> 为指定结束码。
只是猜想有没有更简单的方法。由于小章鱼的程式每个数据(一个发送)都是单一指令,
全是单一的,没有混合的。
回复

使用道具 举报

发表于 29-6-2006 09:48 AM | 显示全部楼层
插不上嘴,我没这方面的经验。
回复

使用道具 举报

 楼主| 发表于 14-7-2006 11:43 AM | 显示全部楼层
白大哥 没经验,也可以谈谈看法和想法,
有时候特殊的方式就是那些没有相关经验的人带出概念的呀。
回复

使用道具 举报

Follow Us
发表于 14-7-2006 10:33 PM | 显示全部楼层
原帖由 sson 于 28-6-2006 10:52 PM 发表
白日梦 可是这里比应用软件研发区冷多了

exiang 盼了好久,你终于出现了,呵呵。
小章鱼目前也是用这种格式 <header> 为特殊指令码 <footer> 为指定结束码。
只是猜想有没有更简单的方法。由于小 ...


再考慮數據包的時候, 有兩種可能

1. send / receive 的次數多, 每次資料少
2. 次數少, 每次資料大 ( 如果常常有 error 就會造成 resend 過多的浪費 )

當然, 壓縮對於大的數據比較有效
由於資料不一定會每一次都完整的收到
所以 <header> 及 <footer> 是必要的.

而處理方面, 每一次只處理 <header> data <footer>
而 <footer> 之後的資料保留給下一次再處理

例如

#1 <header> command 1, param 1, 2, 3 <footer><header> command 2,
處理 command 1

#2 param 1, 2 <footer><header> command 3 param 1 <footer>
處理 command 2

#3 --- no data
處理 buffer 裏的 command 3
回复

使用道具 举报

 楼主| 发表于 16-7-2006 05:50 PM | 显示全部楼层
flashang 谢谢你。
目前应该算解决了。
基于一些考虑,小章鱼目前使用混合式:长度限定 + 自由长度

忘了说,小章鱼做的是类似 FTP Server 的 File Server
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 12-11-2024 03:36 AM , Processed in 0.123789 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表