行各位高手帮忙 最好给出源码 我感觉网络传输的程序不太好写 动不动就出错 而且都是底层的流方面的太抽象 也不好调试有什么办法可以解决呢
解决方案 »
- 没做什么贡献,也有两星了。开心一下,散分。。。。
- 软件运行一天出错:external exception C000001D delphi
- 调用动态库时出现access violation 无效访问求解,高手请进,在线苦等,急等!!!!
- 关于使用D3dHook使全屏程序窗口化
- fastreport的报表自定义//
- 两个datetimepicker的问题
- 各位兄弟,明年准备订什么书啊?
- Delphi6.0和 C++ builder 6.0有什么重要的区别吗?(回复即有分)
- 怎样动态创建按钮?
- 请问各位,有谁那有关于DELPHI 类和接口方面的资料吗,
- 再一个关于窗体的简单问题
- 菜单上的快捷键是怎么显示在菜单项上的?
用TCP/IP
procedure TForm1.Button1Click(Sender: TObject);var
SendFile: TFileStream;
p:pchar;
size:integer;
begin
p:=nil;
size:=sfilesizes('c:\123.txt'); //文件大小
getmem(p,size);
try SendFile:= TFileStream.Create('c:\123.txt', fmOpenRead);
SendFile.readbuffer(p^,size);
clientsocket1.Socket.SendBuf(p^,size);
finally
freemem(p);
sendfile.Free;
end;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);var
receivefile:Tfilestream;
q:pchar;
length:integer;
datafile:tfilestream;
begin q:=nil;
length:=socket.receivelength;
getmem(q,length);
try
receivefile:=TFileStream.Create('d:\123.txt', fmcreate);
socket.ReceiveBuf(q^,length);
receivefile.WriteBuffer(q^,length);
finally
freemem(q);
receivefile.Free;
end;
end; End.
http://expert.csdn.net/Expert/topic/1256/1256304.xml?temp=.1358606
我在程序中也遇到过这样的问题,
每次传过去文件(大于4k)我看属性
都是大小:1.36k
占用空间:4k后来我改为每次传输1k,结果就成功了
速度到达:70K/秒其实文件传输的主要注意点是协议
协议定好了什么都好说