G
guxlei1
Unregistered / Unconfirmed
GUEST, unregistred user!
用socket发送流
filename:='c:/1.zip'
myfile:=tfilestream.Create(filename,fmOpenRead);
myfile.Seek(0,soBeginning);
mystream.copystream(myfile,myfile.size);//这句会出错,1.zip大小为30M
serversocker1.socket.sendstream(mystream);
请问为什么?
-----------------------------
换了种方法
mybuffer:array [0..10000] of char
myfile.Seek(0,soBeginning);
myfile.Write(mybuffer,10000);
serversocker1.socket.SendBuf(mybuffer,10000);
一次只发送10000个字节,然后
myfile.seek(k*10000,soBeginning);
myfile.Write(mybuffer,10000);
serversocker1.socket.SendBuf(mybuffer,10000);
k为客户端每次接到数据后把k加一再发给服务器。服务器就可以把下10000个字节发给客户端,这时还是有问题。当发送时服务器和客户端都不能进行其他操作了。只有等发送完成才能动了。为什么?
而且客户端每次接收的数据不会超过8192,是不是一次最大只能发送8192个字节?
---
我是个新手,代码有什么错误别笑。只是按我的想法写的。请大家告诉我
filename:='c:/1.zip'
myfile:=tfilestream.Create(filename,fmOpenRead);
myfile.Seek(0,soBeginning);
mystream.copystream(myfile,myfile.size);//这句会出错,1.zip大小为30M
serversocker1.socket.sendstream(mystream);
请问为什么?
-----------------------------
换了种方法
mybuffer:array [0..10000] of char
myfile.Seek(0,soBeginning);
myfile.Write(mybuffer,10000);
serversocker1.socket.SendBuf(mybuffer,10000);
一次只发送10000个字节,然后
myfile.seek(k*10000,soBeginning);
myfile.Write(mybuffer,10000);
serversocker1.socket.SendBuf(mybuffer,10000);
k为客户端每次接到数据后把k加一再发给服务器。服务器就可以把下10000个字节发给客户端,这时还是有问题。当发送时服务器和客户端都不能进行其他操作了。只有等发送完成才能动了。为什么?
而且客户端每次接收的数据不会超过8192,是不是一次最大只能发送8192个字节?
---
我是个新手,代码有什么错误别笑。只是按我的想法写的。请大家告诉我