如题,只要求能用Http协议下载文件就行(主要想用HTTP协议来播放电影)。
用现存的WEB服务器,总感觉功能太庞大,容量受到攻击。所以想自己写一个。
结果:当Real播放一段时间后,就出错了。出错原因是读取文件时出错了。
我已经用了线程了。其中的语句是这样的:
var buff :array [0..1023] of char;
    Filehandle:integer;
    readsize:integer;Filehandle:=FileOpen('c:\test.rm', fmOpenRead or fmShareDenyNone);
……
repeat
  readsize:=FileRead(FileHandle,buff,sizeof(buff));
  socket.sendbuff(buff,readsize);
until readsize<>sizeof(buff);FileClose(FileHandle);
rm文件只读到一点点。一部45分钟的电影只能看2分多。望各位大侠帮帮忙,帮小弟写一个。功能:1、能通过GET下载文件。2、能够对每个连接的传送限制在一个固定值以下。

解决方案 »

  1.   

    问题已经找出来了,但没能很好地解决。
     retsend:=socket.sendbuff(buff,readsize);
    连续Sendbuff大约40多K后,retsend=-1 了。而我的程序还有不断地Fileread,一直到文件结束。
    现在的问题是如果能够高效率地进行延迟。
    不停地用sendbuff,直到retsend=readsize,当然是可以的。但感觉让电脑还劳累了;
    用Sleep(sleeptime)。sleeptime取多少好?
    还有没有更好的办法?
    同样问题就是如何很快地对每个连接进行限速?