用DELPHI 7 clientsocket serversocket 控件进行编写
client端发送文件 我自定义了协议
代码如下
var
buffer : array[0..blocklen-1] of byte;
filename : string;
Ftrans : file;
i,numread,flen: Integer;
begin
if openfile.Execute then
begin
filename := trim(ExtractFileName(openfile.FileName)); // 先发送一个文件名 让服务端知道要接收的是一个文件
buffer[0] := $7E; //包头
buffer[1] := $00; // 功能码
buffer[2] := length(filename); //数据长度
for i := 0 to length(filename) do
buffer[3+i-1] := ord(filename[i]); //数据段
buffer[3+length(filename)] := $16 ; //包尾
clientsocket1.Socket.SendBuf(buffer,sizeof(buffer)); assignfile(Ftrans,openfile.FileName); //再次组帧 ,发送一个文件
reset(Ftrans);
flen := filesize(Ftrans);
numread := flen div 1024;
buffer[0]:= $7E;
buffer[1]:= $01;
buffer[2]:= flen ;
for i := 0 to flen do
buffer[3+i-1] := ord(Ftrans[i]); //我这里在写入数据段的时候 编译发生了错误 好象不能这么定义 高手请教一下 文件里的内容要二进制发出去,那部分的数据段代码要着么写?!!!!
buffer[3+filesize(Ftrans)] := $16;
ClientSocket1.Socket.SendBuf(buffer,sizeof(buffer));
showmessage( 'finished!' );
end;
end; 各位帮帮忙呀 谢谢了 我郁闷了很久了
client端发送文件 我自定义了协议
代码如下
var
buffer : array[0..blocklen-1] of byte;
filename : string;
Ftrans : file;
i,numread,flen: Integer;
begin
if openfile.Execute then
begin
filename := trim(ExtractFileName(openfile.FileName)); // 先发送一个文件名 让服务端知道要接收的是一个文件
buffer[0] := $7E; //包头
buffer[1] := $00; // 功能码
buffer[2] := length(filename); //数据长度
for i := 0 to length(filename) do
buffer[3+i-1] := ord(filename[i]); //数据段
buffer[3+length(filename)] := $16 ; //包尾
clientsocket1.Socket.SendBuf(buffer,sizeof(buffer)); assignfile(Ftrans,openfile.FileName); //再次组帧 ,发送一个文件
reset(Ftrans);
flen := filesize(Ftrans);
numread := flen div 1024;
buffer[0]:= $7E;
buffer[1]:= $01;
buffer[2]:= flen ;
for i := 0 to flen do
buffer[3+i-1] := ord(Ftrans[i]); //我这里在写入数据段的时候 编译发生了错误 好象不能这么定义 高手请教一下 文件里的内容要二进制发出去,那部分的数据段代码要着么写?!!!!
buffer[3+filesize(Ftrans)] := $16;
ClientSocket1.Socket.SendBuf(buffer,sizeof(buffer));
showmessage( 'finished!' );
end;
end; 各位帮帮忙呀 谢谢了 我郁闷了很久了
或 TFileStream