C_Sharp 板


LINE

一年多前,我使用C++土法练钢式实作UDP Listeing於Window32上 用它来大量传输影像资料。 由於UDP速度快却无正确性保证, 因此得自己实作环状伫列来使用固定长度的buffer收取udp资料 并作资料正确性的比对。 单是实作环状伫列很就痛苦,更别说要parsing资料, 不用crc checksum,因为它太慢 比对过程中也因为unsigned char的正负号位元, 因为於网路传输错乱而花了很久时间debug。 这星期,我使用C#.NET实作了TCP Server於WinCE上 老实说这没什麽难的,只要注意.NET Compact Framework不支援的类别即可 网路封包资料的收取没有问题。 接下来,就要实作UDP Server, 当然柿子不会挑软的吃,我实作c#在Linux平台上, 粉碎c++/c独占linux平台的独占空想。 幸亏mono平台1.2.6核心已大概支援.NET 2.0的网路类别 而写个能收UDP Socket比TCP Server更简单 但大部分程式设计师大概就这样沾沾自喜而不自前的 更加无视UDP传输正确性无保障的理论基础, 因此实作出自订检查UDP封包的机制是必须的,否则就不要玩UDP. UDP不保证封包顺序及资料长度,因此必须实作buffer来累积udp封包数 c#中的stream类别很适合作这些暂存,但它不支援清除已parsed过的资料 终将会把记忆体爆掉。 把以前的环状伫状演算重施故计, 但它的架构就是无法避免阵列结尾的资料missing 找了很久资料,发现这真正技术点的参考乏善可陈 在试过很多资料结构算法後,勉强绑上一个算是满意的queue来实用。 区分技术点如上图: 1. 这部分看一下书大概1小时就搞定udp的server/client传送方式。 难度: 3% 2. 支援连线session,以ip来区分不同的连线,并记录ip,利用thread timer记录 TimeToLive时间。难度: 5% 3. 无验证的资料通通依ip塞入环状streaming。 难度: 40% 设计udp封包的验证结构,并实作过滤queued中的资料。 难度:40% (这部分要看unsafe及win32与.net的型别互换、记忆体置换、二进位序列化等技术才行) 4. 使用event/非同步方式在udp listener各触发时机接驳到上层的呼叫event。难度: 3% 新增资料进mysql, provider平台测试。难度: 5% 5.设计console下的结束密码。难度2% 6. UDP Client程式。难度: 2% http://forum.dabutek.com/showthread.php?t=18406 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.96.91
1F:推 sss2500:推一个 粉碎c++/c独占linux平台的独占空想~ XD 03/09 08:48
2F:推 gardenest:高手问~必推^+++^ 03/09 22:56
3F:推 KENyroj:高手... 囧 不知能否分享高手的程式?? XD 03/10 09:46
4F:推 saitoh:我用mono的经验是:简单的小程式可以,稍微大一点的就... 03/10 10:05
5F:→ tomex:mono的确在细微处跟win32不同,因此我尽量挑socket/file或中 03/10 15:07
6F:→ tomex:性的类别来实作,减少不相容的现象。v1.2.6版愈来愈成熟了 03/10 15:07
7F:推 horngsh:不知道MONO的.Net 2.0的相容性如何? 如有90%就很棒了. 03/10 16:37







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP