下面的代码是什么意思?

sunny_hs 2002-06-11 09:29:02
unit UnitClient;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ScktComp, StdCtrls, Buttons, ExtCtrls;
Const
MP_QUERY ='11111';
MP_REFUSE ='22222';
MP_ACCEPT ='33333';
MP_NEXTWILLBEDATA='44444';
MP_DATA ='55555';
MP_ABORT ='66666';
MP_OVER ='77777';
MP_CHAT ='88888';
MP_END='99999';
MP_FILEPROPERTY='00000';
iBYTEPERSEND=1024;

procedure TForm1.csRead(Sender: TObject; Socket: TCustomWinSocket);
var
sRecv:string;
bufSend:pointer;
iLength:Integer;
begin
sRecv:=Socket.ReceiveText;
sRecv:=copy(sRecv,1,5);
if sRecv=MP_REFUSE then
memo1.Lines.Add('文件传输被拒绝!')
else if sRecv=MP_ACCEPT then
begin
fsSend:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
bStart:=False;
memo1.Lines.Add('开始发送!');
TickCount:=GetTickCount;
//iBYTEPERSEND是个常量,每次发送包的大小。
Socket.SendText(MP_FILEPROPERTY+inttostr(Trunc(fsSend.Size/iBYTEPERSEND)+1));
//创建文件流并发送文件长度。
end else if sRecv=MP_NEXTWILLBEDATA then
begin
Socket.SendText(MP_NEXTWILLBEDATA);
//通知接收端。继续传送数据。
end else if sRecv=MP_DATA then
begin
//发送数据。
if not bStart then
begin
memo1.Lines.Add('发送数据...!');
bStart:=True;
end;
if fssend.Position< fsSend.Size-1 then
begin
iLength:=fsSend.Size-1-fsSend.Position;
if iLength>iBYTEPERSEND then
iLength:=iBYTEPERSEND;
GetMem(bufSend,iLength+1);
try
fsSend.Read(bufSend^,iLength);
Socket.SendBuf(bufSend^,iLength);
finally
FreeMem(bufSend,iLength+1);
end;{of try}
end else//没有数据需要发送了。
begin
Socket.SendText(MP_END
memo1.Lines.Add('结束!'+IntToStr(GetTickCount-TickCount));
fsSend.Free;
end;
end else if sRecv=MP_ABORT then
begin
memo1.Lines.Add('中止!');
//被取消了:(
fsSend.Free;
end;
end;

其中MP_QUERY ='11111';MP_REFUSE ='22222';MP_ACCEPT ='33333';
MP_NEXTWILLBEDATA='44444';MP_DATA ='55555';MP_ABORT ='66666';
MP_OVER ='77777';MP_CHAT ='88888';MP_END='99999';
MP_FILEPROPERTY='00000'有什么作用?还有那边的那些if语句/
...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
日总是我哥 2002-06-11
  • 打赏
  • 举报
回复

那都是自己定义的协议(protocol)

按照接收到的String不同(If判断)而做不同的操作~~

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧