Programming 板


LINE

因为你电脑执行速度跟网路传输速度是差到三个 order 以上~ 预设缓冲区是 8kb 。 比如说你影印一本书,要一页页印,接收资料也是如此,送比较简单,直接写出去,系统会自动慢慢写。 收的瞬间如果只收到 300 bytes ,你就只读到 300 bytes ,所以必须透过回圈逐步收。 我比较偏向自订通讯协定,先传档案总长度,然後每次传送传偏移量及长度,这样将来还可以单档多线传输。 而透过回圈收的话,就可以明确判断收到多少,数量少了还可以要求重传。 在 1G 的区网下,我会把缓冲区放大到 512 kb ,这是可以算出来了,网路限制/每秒你处理能力,就可以设定缓冲区上限。 ==> 本文由 "why <[email protected]>" > 於 news:552PNN%2478Q%40ptt.cc 发表 > ※ [本文转录自 C_Sharp 看板 #1DY8buFT ] > 作者: whywhywhy (why) 看板: C_Sharp > 标题: [问题] 想请问socket传档好像最後一次没有传完整QQ > 时间: Tue Mar 22 19:35:17 2011 > > 想请问一下我利用socket传图片 > 但是最後好像都没有传完整 > 就是图片最後面的部份都会是黑的 > 可是如果我在client传完後就close socket的话就不会这样 > 请问这是为什麽呢??? > 另外再请问一下NetworkStream.read()是不是只有在client socket关闭後 > 才会return 0呢 > 还有请问有没有比较好得方法可以在传档的时候可以知道档案的类型呢以及档名呢??? > 是要在开一个socket来告诉server这些资料吗??? > 还是在传之前告诉server??? > 麻烦知道的大大可以教我 > 谢谢^^ > 附上我传档的code精简版~ > server: > NetworkStream ns=new NetworkStream(client);//client是accept後所得的socket > FileStream file = new FileStream(@"C:\testS.jpg", FileMode.Create); > BinaryWriter bw = new BinaryWriter(file); > for (; ; ) > { > Byte[] accData = new byte[1024]; > a = ns.Read(accData, 0, accData.Length); > bw.Write(accData); > if (a == 0) > { > bw.Close(); > file.Close(); > break; > } > } > client: > Byte[] accData = new byte[1024]; > long a; > FileStream fs = new FileStream(fileTextBox.Text, FileMode.Open); > BinaryReader br = new BinaryReader(fs); > for (; ; ) > { > a = br.Read(accData, 0, accData.Length); > scComm.Send(accData);//scComm是clientconnect的socket > if (a == 0) > { > br.Close(); > fs.Close(); > break; > } > } > > } > -- 风禹科技验证有限公司 ASP.NET Web News Reader 0.2.9 UTF-8 Beta 网站地图 http://tlcheng.twbbs.org/wwwmap.htm 流域防洪/区域水资源/徐昇网/玫瑰图/语音通讯 文章与程式 Basic/Fortran/Windows API/.Net/辅助说明档 原始码、文章与讨论 微软程式设计、系统管理使用新技术论坛讨论区,网友回覆後即时简讯、电子邮件通知: MSDN: http://social.msdn.microsoft.com/Forums/zh-TW/categories/ TechNet: http://social.technet.microsoft.com/Forums/zh-TW/categories/ -- ASPNET News Reader http://tlcheng.twbbs.org/News/Reader.aspx RSS 2.0 http://tlcheng.twbbs.org/News/rss2.aspx?Action=List&Newsgroup=tw.bbs.comp.language







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灯, 水草

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

TOP