读书人

高分求网络文件传输最佳思路,该如何解

发布时间: 2012-03-23 12:06:21 作者: rapoo

高分求网络文件传输最佳思路
要求用ServerSocket和ClientSocket发送文件。控制端与被控端互相可以传超大文件。
目前已经实现。只是觉得方法有优化的余地,希望能得到更好的思路(是思路不一定要给出代码)。


我是这么做的。先传一个标识(比如AAA)字符给对方,然后再传一个结构体给对方。
结构体5个成员是:不含路径的文件名/文件大小/文件属性/附加信息/文件传完毕后是否立即运行。
然后开始传文件本身,文件比较大的时候,在传文件本身时如果想再发送一个字符(比如BBB)就不行了,郁闷。

当然我可以开放两个端口,一个专门管接收指令字符,一个传门传文件,于是问题解决。但觉得方法不好,求更佳思路。





另:论坛中发贴向专家提问的功能没有了吗?好久没发贴了,变化不小!

[解决办法]
发送BBB有条件吗,传送到什么状态时发送BBB
[解决办法]

探讨
另:论坛中发贴向专家提问的功能没有了吗?好久没发贴了,变化不小!

[解决办法]
1.如果用一个端口 那么每一次发送对协议级别 进行控制 如果控制协议 第一时间发出去
2.建议 控制协议(tcp)和 文件传输(udp) 是用两个端口

是否涉及外网?如果是 每个udp包 现在 1400以内


读写 文件 用流 读写 这个就不用说了吧。呵呵。。。
[解决办法]
这个要关注~~ 建议建立2个连接
[解决办法]
探讨
文件块、文本内容,都放到一个发送队列里,附上优先级。
队列可以用变体记录来表示,如:
TBufferInfo = record
  Priority: Integer;
  case BufferType: Integer of
    0: begin
        BlockSize: Integer;
        Buffer: Pointer;
      end;
    1: Text: string;
  end;
end;
(以上语法可以有错,好久没写这玩意儿了...)
       

[解决办法]
俺上次使用分段传输大文件的.不过总觉得悬,还在没出问题,就是将大文件切块,一块块输送,正好听听大家是如何做到的
[解决办法]
FTP
[解决办法]
MARK

读书人网 >.NET

热点推荐