免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2876 | 回复: 7
打印 上一主题 下一主题

请教高人, 关于soket传输文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-25 10:56 |只看该作者 |倒序浏览
我编写了一个socket服务进程和一个client进程
以下是要求之一
==============================
服务进程:
    实现可以一次发送好几个文件

客户进程:
    实现可以一次连接接收好几个文件
==============================
在服务器端我开始循环的先读一个文件,512字节一传输

客户端开始接收,512字节一接收

但是有个问题,我在客户端接收字节,并进行处理的时候(1秒, 2秒,3秒...)
有长有短阿,不一定有3秒那么长哈.

而服务器端还在不停的发

第一次我是在客户端收到了512字节,但是过了3秒,我再去收,就不止这么多了。。。可能是1024或者更多

于是我想到一个笨方法,服务器端写完以后,read那个socket,堵塞在那里
客户端先接收,然后处理完了,再write回一个字节,解放在苦苦堵塞的服务器
端,告诉他我处理好了,可以再写了


我觉得这个方法一定是笨的,希望有高人指点一下,怎么解决!

论坛徽章:
0
2 [报告]
发表于 2003-01-25 12:13 |只看该作者

请教高人, 关于soket传输文件

你的要求是不是只要能传 文件就可以了

如果是
不是那么 读到多 少都不影响的

另外可以在recv  中指定最多读多少个字工不起 节

论坛徽章:
0
3 [报告]
发表于 2003-01-25 13:05 |只看该作者

请教高人, 关于soket传输文件

你的服务端发送后,接受客户端返回的是否接收成功信息。然后再继续发送。
客户端:接收后,发送是否接受成功信息给服务端就可以了啊。

论坛徽章:
0
4 [报告]
发表于 2003-01-25 19:23 |只看该作者

请教高人, 关于soket传输文件

RE : hzhrh  
其实你的想法和我一样阿,
这样的话就多了一道通讯过程....
我担心浪费资源,时间

RE: 无双
你说的方法我会试一试

3x

论坛徽章:
0
5 [报告]
发表于 2003-01-28 14:37 |只看该作者

请教高人, 关于soket传输文件

你把接收的最大长度定义为512就可以了吧

论坛徽章:
0
6 [报告]
发表于 2003-01-28 18:37 |只看该作者

请教高人, 关于soket传输文件

完全有必要发送是否接受成功信息给服务端,否则续传和蚂蚁类似的就没有了。
需要加强功能!

论坛徽章:
0
7 [报告]
发表于 2003-02-05 00:14 |只看该作者

请教高人, 关于soket传输文件

你的问题我遇到过,必须要一收一发堵塞住,
recv最多读多少个字节(也就是指定读发送方发送的长度)是没用的,
因为问题会出在发送方,当文件一多,发送方在对方未收的同时会再发送并成功,最后会因为本地缓冲区塞满而导致发送超时,结果链路断链!

论坛徽章:
0
8 [报告]
发表于 2003-02-28 22:34 |只看该作者

请教高人, 关于soket传输文件

接收方和发送方的“握手"是很重要的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP