我想通过SOCKET在两台机器上互相传文件,在客户端我这样做:
FileStream.create(filename,....);
MemoryStream.copyfrom(FileStream);
ClientSocket1.sendstream(MemoryStream);
可我在服务端的ONCLientRead中没有收到。
这是怎么回事?
我想问一下谁有传文件的源码,要上传的文件可能是二进制文件,
最好只用SOCKET传,因为我是在UNIX上用C与WINDOWS上用
DELPHI通讯的。
FileStream.create(filename,....);
MemoryStream.copyfrom(FileStream);
ClientSocket1.sendstream(MemoryStream);
可我在服务端的ONCLientRead中没有收到。
这是怎么回事?
我想问一下谁有传文件的源码,要上传的文件可能是二进制文件,
最好只用SOCKET传,因为我是在UNIX上用C与WINDOWS上用
DELPHI通讯的。
解决方案 »
- 老问题,Image闪烁问题。
- IdHTTP 登录并保持在线的问题
- 打印机与Rave的问题。。。
- 问一个问题,哪位大哥能够详细的说说ADO分页显示呀?
- 在edit1里面输入一串数字,然后按回车键,这个时候响应什么事件!在线等待
- 有选择查询
- 关于转换图标的问题~~~~高分寻求16像图片
- 程序中的BDE 表格Tabel为什么不能实时收到另外一个程序对同一数据表所作的改动,Tabel自动刷新打开也没有,必须关闭这个表,再重新打开才能看到,如何解决?
- 数据库断开连接后重连问题
- 紧急问题,加分问题
- 新买了两本DELPHI的书,大家帮我看看值不值。
- 关于delphi报表的问题:为什么报表有时侯能够显示数据,有时不能,只能显示编译前的基本框架?
不过还有个问题,就是我做MemoryStream.Free是程序出错,
是不是TmemoryStream不需要做Free?
var
Fs : TFileStream;
Buf : pointer;
Size : integer;
begin
SendOrReceive := SendFile;
Fs := TFileStream.Create(OpenDialogSendFile.FileName,fmOpenRead or fmShareDenyNone);
if Fs.Size > 1024 then
Size := 1024
else
Size := fs.Size;
GetMem(Buf,Size);
Fs.Seek(0,soFromBeginning);
ClientSocket.Socket.SendBuf(Buf^,Size);
Send_Size := Size;
Fs.Destroy;
FreeMem(Buf);
end;