开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3089|回复: 9
收起左侧

[已解决] 远程传输文件用服务器客户组件好还是远程服务支持库好?。。

 关闭 [复制链接]
结帖率:50% (2/4)
发表于 2012-8-30 03:45:49 | 显示全部楼层 |阅读模式   希腊
2精币
为什么我用远程服务支持库传输文件会丢包。。我是这样写的,服务端先发送3000字节集给客户端,然后客户端写出字节集写好了就发送一个信息让服务端在发送3000字节集。。就这样循环,直到客户端收到的字节集大小大于等于文件大小时发送一个信息让服务端停止发送。。
我觉得是不是这种方法循环的太快了。。有时候会丢包。。导致有些地方漏掉了。。但是我看XX的文件传输列程他就是用这种方法的。。但用的是核心库的服务器客户组件。。所以我想问问是不是服务器客户组件比远程服务支持库稳定,而且不丢包。。是不是我的代码应该重新写。。用服务器客户组件。。
我用远程服务写的时候丢包之后我是这么想的。。让客户端发送当前已经接受到的文件大小,然后服务端用 移动读写位置 ()命令移到那里再发送。。我本来是想直接重新用服务器客户组件的。。但是想想远程服务支持库也应该有他的好处。。不然它就没有意义了。。
所以来论坛问问,该咋办。。

最佳答案

查看完整内容

强烈推荐楼主用远程服务支持库,远程服务支持库是最稳定的支持库,可以自动分包,最大发送 不限字节,唯一缺点就是一个线程池占用四个线程,开多了也有问题。而核心支持库呢,传送量小,最大发送 4380个字节,还要自定协议分包。至于你用会远程服务丢包,应该是源码的问题

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (5/5)
发表于 2012-8-30 03:45:50 | 显示全部楼层   湖南省湘潭市
强烈推荐楼主用远程服务支持库,远程服务支持库是最稳定的支持库,可以自动分包,最大发送 不限字节,唯一缺点就是一个线程池占用四个线程,开多了也有问题。而核心支持库呢,传送量小,最大发送 4380个字节,还要自定协议分包。至于你用会远程服务丢包,应该是源码的问题

点评

O(∩_∩)O谢谢。。就选你的吧。。我改成服务器客户组件试了一下。。感觉不好。。又改回来了。。呵呵   希腊  发表于 2012-9-9 02:56

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^.

查看全部评分

回复

使用道具 举报

结帖率:50% (2/4)
 楼主| 发表于 2012-8-30 03:48:39 | 显示全部楼层   希腊
求助知识:请将问题描述清楚,最好把你有问题的源码打包上传上来,这样更方便大家帮助你。

不好意思了。。源码我不能打包上来。。因为。。没有因为,这代码我写了很久了,文件传输只是其中一个功能,并不想公开。。抱歉。。
回复

使用道具 举报

结帖率:50% (1/2)
发表于 2012-8-30 08:35:59 | 显示全部楼层   山西省长治市
你可以把文件传送功能单独拿出来,将源码发上来
回复

使用道具 举报

结帖率:35% (7/20)
发表于 2012-8-30 10:15:00 | 显示全部楼层   河北省张家口市
包是有大小限制的,图像文件一次发不完,客户端发送数据前面加个标识,
服务端:
.版本 2

.子程序 _服务器1_数据到达
.局部变量 数据包, 字节集
.局部变量 头标识, 文本型
.局部变量 数据, 字节集

数据包 = 服务器1.取回数据 ()
头标识 = 到文本 (取字节集左边 (数据包, 4))
数据 = 取字节集右边 (数据包, 取字节集长度 (数据包) - 4)
.判断开始 (头标识 = “txzj”)  ' 图像字集
    总字节集 = {  }
    .如果 (取字节集数据 (取字节集右边 (数据, 4), #文本型, ) = “txzj”)
        总字节集 = 取字节集左边 (数据, 取字节集长度 (数据) - 4)
        是否有数据 = 假
        画板1.底图 = 总字节集
    .否则
        总字节集 = 数据
        是否有数据 = 真
    .如果结束

.判断 (是否有数据 = 真)
    .如果 (取字节集数据 (取字节集右边 (数据包, 4), #文本型, ) = “txzj”)
        总字节集 = 总字节集 + 取字节集左边 (数据包, 取字节集长度 (数据包) - 4)
        是否有数据 = 假
        画板1.底图 = 总字节集
        总字节集 = {  }
    .否则
        总字节集 = 总字节集 + 数据包
        返回 ()
    .如果结束

.默认

回复

使用道具 举报

结帖率:35% (7/20)
发表于 2012-8-30 11:06:56 | 显示全部楼层   河北省张家口市
道理是一样的,好好研究一下下,你不用分包发,一下发,程序会分几次发完,前面加标识,服务端把几次接到的数据加起来再处理,我以前做远程控制做过,客户端程序找不到了,
回复

使用道具 举报

结帖率:80% (20/25)
发表于 2012-8-30 11:14:35 | 显示全部楼层   浙江省嘉兴市
服务器,客户端会丢失数据
建议用网络通讯支持库,不丢包
回复

使用道具 举报

结帖率:50% (2/4)
 楼主| 发表于 2012-8-31 03:26:04 | 显示全部楼层   希腊
不死的白菜 发表于 2012-8-30 09:23
强烈推荐楼主用远程服务支持库,远程服务支持库是最稳定的支持库,可以自动分包,最大发送 不限字节,唯一缺 ...

远程服务支持库我在网上看到,好像在互联网上发送3MB以上的文件就会无响应的。。不过我没试过。。
其实我一开始也是那么想的。所以我的源码是远程服务支持库的。
回复

使用道具 举报

结帖率:50% (2/4)
 楼主| 发表于 2012-8-31 05:16:51 | 显示全部楼层   希腊
唉。。弄了半天。文件传输功能还是分不出来。。。源码还是不上传了。。如果可以,能不能请大家帮忙做一下文件传输。要可以同时传输多个文件的。手动分包。。感激不尽。。
回复

使用道具 举报

结帖率:50% (2/4)
 楼主| 发表于 2012-9-2 04:33:37 | 显示全部楼层   希腊
file:///C:/Users/ok/Desktop/N`PRNA}EAE`D$%25LQ}F9%25%5BHO.jpg
为什么我自己分包发送字节集到了1830000字节时就一直丢包,为什么第1840000字节就发不出去。。
我做了处理。前10000字节发送失败,就重新发送。。可为什么就一直丢包??
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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