比较简单的DEMO学习
服务端代码
View Code
unit RtcHttpServer; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, StdCtrls, ComCtrls, rtcInfo, rtcConn, rtcDataSrv, rtcHttpSrv, rtcFunction, rtcSrvModule; type TMsgType = (mtOK, mtHelp, mtErr); TrtcHttpServerDemo = class(TForm) RtcHttpServer1: TRtcHttpServer; ListView1: TListView; Button1: TButton; Button2: TButton; ImageList1: TImageList; RtcFunctionGroup1: TRtcFunctionGroup; RtcFunction1: TRtcFunction; RtcServerModule1: TRtcServerModule; procedure Button1Click(Sender: TObject); procedure RtcHttpServer1Connect(Sender: TRtcConnection); procedure RtcHttpServer1Connecting(Sender: TRtcConnection); procedure RtcHttpServer1Disconnect(Sender: TRtcConnection); procedure RtcHttpServer1ListenStart(Sender: TRtcConnection); procedure RtcHttpServer1SessionClose(Sender: TRtcConnection); procedure RtcHttpServer1SessionOpen(Sender: TRtcConnection); procedure RtcHttpServer1ListenLost(Sender: TRtcConnection); procedure RtcFunction1Execute(Sender: TRtcConnection; Param: TRtcFunctionInfo; Result: TRtcValue); private procedure LogEvent(msg: String; msgType: TMsgType); procedure LogClear; public { Public declarations } end; var rtcHttpServerDemo: TrtcHttpServerDemo; implementation {$R *.dfm} procedure TrtcHttpServerDemo.Button1Click(Sender: TObject); begin //开始监听 RtcHttpServer1.Listen(); end; procedure TrtcHttpServerDemo.LogClear; begin //清除事件列表 ListView1.Items.Clear; end; procedure TrtcHttpServerDemo.LogEvent(msg: String; msgType:TMsgType); var ltIco: TListItem; begin ltIco := ListView1.Items.Add; ltIco.SubItems.Add(msg); ltIco.SubItems.Add(DateTimeToStr(Now)); //设置图标 case msgType of mtOK: ltIco.StateIndex := 1; mtHelp: ltIco.StateIndex := 0; mtErr: ltIco.StateIndex := 2; end; ListView1.Scroll(10, 10); end; procedure TrtcHttpServerDemo.RtcFunction1Execute(Sender: TRtcConnection; Param: TRtcFunctionInfo; Result: TRtcValue); begin with Sender as TRtcDataServer do begin //请求名字 LogEvent('请求参数:' + Param.asString['name'], mtOK); Result.asString := 'Hello: ' + Param.asString['name']; end; end; procedure TrtcHttpServerDemo.RtcHttpServer1Connect(Sender: TRtcConnection); //连接事件 begin LogEvent('连接成功:客户端地址:' + Sender.PeerAddr + ',当前客户端连接数' + IntToStr(Sender.TotalConnectionCount), mtOK); end; procedure TrtcHttpServerDemo.RtcHttpServer1Connecting(Sender: TRtcConnection); begin LogEvent(Sender.sPeerAddr + '正在连接中...', mtOk); end; procedure TrtcHttpServerDemo.RtcHttpServer1Disconnect(Sender: TRtcConnection); begin LogEvent(Sender.sPeerAddr + '连接断开了... 当前客户端连接数' + IntToStr(Sender.TotalConnectionCount - 1), mtOk); end; procedure TrtcHttpServerDemo.RtcHttpServer1ListenLost(Sender: TRtcConnection); begin LogEvent('监听丢失:' + Sender.PeerAddr, mtErr); end; procedure TrtcHttpServerDemo.RtcHttpServer1ListenStart(Sender: TRtcConnection); begin LogClear; LogEvent('服务启动中',Mtok); end; procedure TrtcHttpServerDemo.RtcHttpServer1SessionClose(Sender: TRtcConnection); begin LogEvent('会话已关闭',MtErr); end; procedure TrtcHttpServerDemo.RtcHttpServer1SessionOpen(Sender: TRtcConnection); begin LogEvent('会话已成功连接',MtErr); end; end.
服务端DFM
View Code
object rtcHttpServerDemo: TrtcHttpServerDemo Left = 0 Top = 0 Caption = 'FrmrtcHttpServerDemo' ClientHeight = 202 ClientWidth = 389 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object ListView1: TListView Left = 0 Top = 0 Width = 389 Height = 150 Align = alTop BevelOuter = bvRaised Columns = < item end item Caption = #20107#20214 end item Caption = #21457#29983#26102#38388 end> FlatScrollBars = True GridLines = True Groups = < item GroupID = 0 State = [lgsNormal] HeaderAlign = taLeftJustify FooterAlign = taLeftJustify TitleImage = -1 end item Header = '333' GroupID = 1 State = [lgsNormal] HeaderAlign = taLeftJustify FooterAlign = taLeftJustify TitleImage = -1 end item GroupID = 2 State = [lgsNormal] HeaderAlign = taLeftJustify FooterAlign = taLeftJustify TitleImage = -1 end> IconOptions.Arrangement = iaLeft LargeImages = ImageList1 RowSelect = True SmallImages = ImageList1 TabOrder = 0 ViewStyle = vsReport ExplicitLeft = -32 ExplicitTop = 8 end object Button1: TButton Left = 8 Top = 156 Width = 75 Height = 25 Caption = 'Start' TabOrder = 1 OnClick = Button1Click end object Button2: TButton Left = 104 Top = 156 Width = 75 Height = 25 Caption = 'Stop' TabOrder = 2 end object RtcHttpServer1: TRtcHttpServer ServerPort = '9899' OnConnecting = RtcHttpServer1Connecting OnConnect = RtcHttpServer1Connect OnDisconnect = RtcHttpServer1Disconnect OnListenStart = RtcHttpServer1ListenStart OnListenLost = RtcHttpServer1ListenLost OnSessionOpen = RtcHttpServer1SessionOpen OnSessionClose = RtcHttpServer1SessionClose Left = 176 Top = 96 end object ImageList1: TImageList Left = 296 Top = 104 Bitmap = { 494C010103000800100010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000001000000001002000000000000010 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000FCFCFC00EDEDED00D1D1D100B8B8B800AEAEAE00BBBBBB00D5D5D500F1F1 F100FEFEFE00000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFC7C7C700848484005D5D5D00615B5700716153005D5956005F5F5F008C8C 8C00CECECE00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000F4F4 F400C8C8C800858585005E5E5E0058635A0055725C00575F5900606060008D8D 8D00CFCFCF00F7F7F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFC7C7 C700848484005D5D5D00575761005353710056565D005F5F5F008C8C8C00CECE CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFABAB AB005E5C5B00956D4F00A66B3B00C2570600C2570600C2570600A76B3D008E6B 4D0062626200B6B6B600FFFFFFFFFFFFFFFF0000000000000000EEEEEE00ACAC AC005C5F5D0050975F003DA854003BAB520039BA52003BA953003FA956004F90 5D0063636300B7B7B700F2F2F20000000000FFFFFFFFFFFFFFFFABABAB005B5B 5E004F4F95003B3DA600393CA900383DB800393BA7003D3FA7004D4F8E006262 6200B6B6B600FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFADADAD005D59 5500A76B3F00C8692A00C6511200BE4C1100BA4A1000BE4B1000C6541400C56B 2E00A66E4300615D5900BFBFBF00FFFFFFFF00000000F6F6F600AEAEAE00565F 580040A956002CCA490014C82B0011BE270010BA250010BE250016C82F0030C7 4B0044A859005A635C00C0C0C000FAFAFA00FFFFFFFFADADAD0055555D003F40 A7002A33C8001225C6001123BE001022BA001023BE001424C6002E36C5004344 A60059596100BFBFBF00FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFD5D5D50068636000A468 3600CF591500B64C1000AE481000AD481100AD471000AD481100AE481000B84C 1000D35E1800A568390077727000FFFFFFFF00000000D6D6D600616A620038A6 510017D1330010B627000EAE25000FAD25000EAD230011AD260010AE260010B8 280019D537003BA7520071787200E4E4E400D5D5D500606068003638A4001524 CF00101FB600101FAE001120AD001020AD001120AD00101FAE00101FB8001825 D300393BA50070717700FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFA8A8A8009F663C00D461 1A00B54C1000B04A1000AD521000C6865800FFFFFF00C6855800AD521100AD52 1100B74D1000C869280090644100B9B9B900FDFDFD00A9A9A9003DA152001BD6 3B0010B528000EB026000EB02600000000000EB026000EB0260010B0270010B0 270010B7290029CA480042925400BABABA00A8A8A8003C3D9F001A25D400101E B500101EB000101EB000101EB000101EB000101EB000101EB000101EB000101E B700282EC80041419000B9B9B900FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFF8C7C7100B26B3900C253 1000B34F1100B34E1100B054100093460D004F26070093460D00B0541000B053 0E00B34D1000C9561100A667380098918C00F6F6F600728E79003AB4530010C2 2C000FB32A000FB328000000000000000000000000000EB428000FB32A0011B3 2C0010B3290011C92E0039A851008D9A900071718C00393DB200101DC200111C B300111DB300FFFFFF00C4C6E100101CB300C4C7E100FFFFFF00111CB300101C B300111FC9003839A6008C8C9800FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFF926E5300CC733400B951 1100B6511000B7511000B3591100BB682800FFFFFF00C1763B00B4571000B456 0E00B6511000BF561300C4753A0093796500EDEDED005494610036CE530011B9 2D000EB62B0000000000000000000000000000000000000000000FB72C000EB7 2B0010B62D0013BF31003CC658006795720053539200343ACC00111CB900101A B600101AB700C3C4D400FFFFFF00C5C6E200FFFFFF00C3C4D400101AB700101A B600131DBF003A3DC40065659300FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFF9C6F4C00D77C3A00BC56 1400BA531000BA541000A3510E00A3510E00D4C7C200FFFFFF00C57C3F00BE66 1500BA551100BD5A1800D27D3E009B795D00EFEFEF004D9E5F003CDA5C0014BC 32000EBA2C000000000000000000008115000000000000000000000000000FBA 2E000FBA2E0018BD360040D45F005E9D6C004C4D9C003A3FD700141DBC001019 BA001018BA000A0F7300C3C4D400FFFFFF00C3C4D5000A0F73001119BA001119 BA001820BD003E42D2005D5D9B00FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFA0755300D8874A00C566 2100BD581100BD571000BA5E1000BA5E100086460C00D4C7C200FFFFFF00BE65 1500BD561100C8692700CD834A00A1816800F8F8F80055A266004CDB690021C5 42000FBD300000831600008316000FBD30000083160000000000000000000000 00000FBD2F0027C846004BCF68006AA376005353A0004A4DD8002126C5001118 BD001017BD00C5C6E300FFFFFF00C3C4D500FFFFFF00C4C6E3001117BD001119 BD00272DC8004A4BCD00686AA100FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFAC8B7000C9875300D57E 3D00C3601800C05C1100FFFFFF00D4C7C20089470C00D2C1B800FEFEFE00BD65 1500C4641C00DB884700B97E4E00B9A49200FEFEFE0071AE7F0055CB70003DD5 5D0018C33B0011C0350010C0340011C035000EC0310000851600000000000000 000019C43B0047DB670050BB680094BB9D007070AC005354C9003D40D500181D C3001115C000FFFFFF00C3C4D5000A0D7600C3C4D500FFFFFF001116C0001C20 C4004749DB004E4EB9009294B900FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFD7CEC800A9714200EFA7 6D00D27E3B00C7651C00572E0800FFFFFF00F7ECE200F8EEE500A78C7700BE59 0D00D6824000F0A97100A3653500FFFFFFFF00000000C9D9CC0044AB5C006DEF 8B003BD25D001CC73F0013C4390011C3370010C235000EC33200028718000A8A 1F003AD55A0073F2900037A55000EDEDED00C8C8D7004242A9006D6DEF003B3C D2001C20C7000A0C6A000A0C78001014C2000A0C78000A0C6A002021C8004042 D6007171F0003536A300FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFB2896700C990 6000EDAC7300DB8D4D00CE7F2F00955B21006C3F140094591F00D1712700DB86 4200F0B07900BE875A00BA977C00FFFFFFFF00000000FAFAFA0069B47A0061CB 7B0073ED91004DDB6E0035D259002BCE510027CD4B002ACE4F0036D25B0052DD 720079F096005CC173007EBC8C00FEFEFE00FFFFFFFF6767B2006160C9007573 ED004D4DDB003535D2002B2BCE002729CD002A2BCE003736D2005252DD007B79 F0005A5ABE007C7CBA00FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFAC79 4F00CC956600F6BE8A00EBAF7600E6A46800E4A06400E6A46900EDB07900F7C0 8C00C58F6000B2856100FFFFFFFFFFFFFFFF0000000000000000ECF2ED0050AE 650068CE81008AF6A70076EB950068E6880064E4840069E6890079ED97008CF7 A90062C77A0062B47400F8F8F80000000000FFFFFFFFFFFFFFFF4F4FAC006766 CC008E8AF6007A76EB006B68E6006764E4006C69E6007C79ED00908CF7006260 C5006161B200FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFB5876400B8835700DDA97B00F2BF8E00F1BD8D00F1BF8F00DAA57700B37D 5100BA906F00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000EBF2 ED0065B7770059BA70007DDF950090F4AB008FF3AA0091F3AA0078DC920053B5 690071BC8200F7F9F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF6464 B5005757B8007D7BDD00928EF200908DF100928FF1007977DA005151B3006F6F BA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFDECCBE00BB916E00A9714300A9704300A9714400BE977800E4D6 CA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 000000000000BFE0C70070BD810045AB5C0045AB5C0046AB5C0079C08A00CBE6 D10000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFBEBFDE006E70BB004344A9004343A9004446A9007878BE00CACAE400FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000100000000100010000000000800000000000000000000000 000000000000000000000000FFFFFF000000F007000000000000E00300000000 0000C00100000000000080000000000000008000000000000000010000000000 0000038000000000000007C000000000000006E0000000000000007000000000 0000003000000000000080000000000000008000000000000000C00100000000 0000E003000000000000F80F00000000} end object RtcFunctionGroup1: TRtcFunctionGroup Left = 152 Top = 40 end object RtcFunction1: TRtcFunction Group = RtcFunctionGroup1 FunctionName = 'SimpleTest' OnExecute = RtcFunction1Execute Left = 32 Top = 40 end object RtcServerModule1: TRtcServerModule Server = RtcHttpServer1 ModuleFileName = '/mytest' FunctionGroup = RtcFunctionGroup1 Left = 48 Top = 96 end end
客户端代码
View Code
unit RtcClient; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, rtcConn, rtcDataCli, rtcHttpCli, rtcInfo, rtcFunction, StdCtrls, ExtCtrls, ComCtrls, ImgList, rtcCliModule; type TMsgType = (mtOK, mtHelp, mtErr); TfrmRtcHttpClient = class(TForm) RtcFunction1: TRtcFunction; RtcHttpClient1: TRtcHttpClient; ListView1: TListView; Panel1: TPanel; Button1: TButton; ImageList1: TImageList; RtcClientModule1: TRtcClientModule; RtcFunctionGroup1: TRtcFunctionGroup; Button2: TButton; RtcResult1: TRtcResult; edit1: TEdit; procedure Button1Click(Sender: TObject); procedure RtcHttpClient1ConnectError(Sender: TRtcConnection; E: Exception); procedure RtcHttpClient1ConnectFail(Sender: TRtcConnection); procedure RtcFunction1Execute(Sender: TRtcConnection; Param: TRtcFunctionInfo; Result: TRtcValue); procedure edit1KeyPress(Sender: TObject; var Key: Char); procedure RtcResult1Return(Sender: TRtcConnection; Data, Result: TRtcValue); procedure RtcHttpClient1Connect(Sender: TRtcConnection); private procedure LogEvent(msg: String; msgType: TMsgType); procedure LogClear; public { Public declarations } end; var frmRtcHttpClient: TfrmRtcHttpClient; implementation {$R *.dfm} procedure TfrmRtcHttpClient.Button1Click(Sender: TObject); begin if RtcHttpClient1.isConnected or RtcHttpClient1.isConnecting then exit; RtcHttpClient1.Connect(); end; procedure TfrmRtcHttpClient.edit1KeyPress(Sender: TObject; var Key: Char); begin //发送请求 if key = #13 then begin with RtcClientModule1, Data do begin with NewFunction('SimpleTest') do begin asString['name'] := edit1.Text; Call(RtcResult1); end; end; end; end; procedure TfrmRtcHttpClient.LogClear; begin ListView1.Items.Clear; end; procedure TfrmRtcHttpClient.LogEvent(msg: String; msgType: TMsgType); var ltIco, ltEvent, ltDate: TListItem; begin ltIco := ListView1.Items.Add; ltIco.SubItems.Add(msg); ltIco.SubItems.Add(DateTimeToStr(Now)); //设置图标 case msgType of mtOK: ltIco.StateIndex := 1; mtHelp: ltIco.StateIndex := 0; mtErr: ltIco.StateIndex := 2; end; ListView1.Scroll(10, 10); end; procedure TfrmRtcHttpClient.RtcFunction1Execute(Sender: TRtcConnection; Param: TRtcFunctionInfo; Result: TRtcValue); begin Param.asString['name'] := 'pengshaomin'; LogEvent('服务器响应:' + Result.asString, mtOK); end; procedure TfrmRtcHttpClient.RtcHttpClient1Connect(Sender: TRtcConnection); begin LogEvent('连接服务器[' + Sender.sServerAddr +']成功', mtOK); end; procedure TfrmRtcHttpClient.RtcHttpClient1ConnectError(Sender: TRtcConnection; E: Exception); begin LogEvent('连接服务器[' + Sender.sServerAddr +']错误', mtErr); end; procedure TfrmRtcHttpClient.RtcHttpClient1ConnectFail(Sender: TRtcConnection); begin LogEvent('连接服务器[' + Sender.sServerAddr +']失败', mtErr); end; procedure TfrmRtcHttpClient.RtcResult1Return(Sender: TRtcConnection; Data, Result: TRtcValue); begin with Sender as TRtcDataClient do begin LogEvent( (Sender as TRtcDataClient).sServerAddr + '服务器:' + Result.asString, mtOK); end; end; end.
客户端DFM
object frmRtcHttpClient: TfrmRtcHttpClient Left = 0 Top = 0 Caption = 'frmRtcHttpClient' ClientHeight = 286 ClientWidth = 447 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object ListView1: TListView Left = 0 Top = 0 Width = 447 Height = 201 Align = alClient BevelOuter = bvRaised Columns = < item end item Caption = #20107#20214 end item Caption = #21457#29983#26102#38388 end> FlatScrollBars = True GridLines = True Groups = < item GroupID = 0 State = [lgsNormal] HeaderAlign = taLeftJustify FooterAlign = taLeftJustify TitleImage = -1 end item Header = '333' GroupID = 1 State = [lgsNormal] HeaderAlign = taLeftJustify FooterAlign = taLeftJustify TitleImage = -1 end item GroupID = 2 State = [lgsNormal] HeaderAlign = taLeftJustify FooterAlign = taLeftJustify TitleImage = -1 end> IconOptions.Arrangement = iaLeft StateImages = ImageList1 TabOrder = 0 ViewStyle = vsReport ExplicitLeft = -8 ExplicitTop = 32 end object Panel1: TPanel Left = 0 Top = 201 Width = 447 Height = 85 Align = alBottom TabOrder = 1 ExplicitLeft = 8 ExplicitTop = 159 ExplicitWidth = 185 ExplicitHeight = 41 object Button1: TButton Left = 16 Top = 28 Width = 75 Height = 25 Caption = 'connect' TabOrder = 0 OnClick = Button1Click end object Button2: TButton Left = 97 Top = 28 Width = 112 Height = 25 Caption = 'function execute' TabOrder = 1 end object edit1: TEdit Left = 1 Top = 1 Width = 445 Height = 21 Align = alTop TabOrder = 2 OnKeyPress = edit1KeyPress ExplicitLeft = 200 ExplicitTop = 16 ExplicitWidth = 121 end end object RtcFunction1: TRtcFunction Group = RtcFunctionGroup1 FunctionName = 'SimpleTest' OnExecute = RtcFunction1Execute Left = 128 Top = 112 end object RtcHttpClient1: TRtcHttpClient ServerAddr = '192.168.1.57' ServerPort = '9899' OnConnect = RtcHttpClient1Connect OnConnectFail = RtcHttpClient1ConnectFail OnConnectError = RtcHttpClient1ConnectError Left = 40 Top = 48 end object ImageList1: TImageList Left = 384 Top = 24 Bitmap = { 494C010103000800140010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000001000000001002000000000000010 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000FCFCFC00EDEDED00D1D1D100B8B8B800AEAEAE00BBBBBB00D5D5D500F1F1 F100FEFEFE00000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFC7C7C700848484005D5D5D00615B5700716153005D5956005F5F5F008C8C 8C00CECECE00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000F4F4 F400C8C8C800858585005E5E5E0058635A0055725C00575F5900606060008D8D 8D00CFCFCF00F7F7F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFC7C7 C700848484005D5D5D00575761005353710056565D005F5F5F008C8C8C00CECE CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFABAB AB005E5C5B00956D4F00A66B3B00C2570600C2570600C2570600A76B3D008E6B 4D0062626200B6B6B600FFFFFFFFFFFFFFFF0000000000000000EEEEEE00ACAC AC005C5F5D0050975F003DA854003BAB520039BA52003BA953003FA956004F90 5D0063636300B7B7B700F2F2F20000000000FFFFFFFFFFFFFFFFABABAB005B5B 5E004F4F95003B3DA600393CA900383DB800393BA7003D3FA7004D4F8E006262 6200B6B6B600FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFADADAD005D59 5500A76B3F00C8692A00C6511200BE4C1100BA4A1000BE4B1000C6541400C56B 2E00A66E4300615D5900BFBFBF00FFFFFFFF00000000F6F6F600AEAEAE00565F 580040A956002CCA490014C82B0011BE270010BA250010BE250016C82F0030C7 4B0044A859005A635C00C0C0C000FAFAFA00FFFFFFFFADADAD0055555D003F40 A7002A33C8001225C6001123BE001022BA001023BE001424C6002E36C5004344 A60059596100BFBFBF00FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFD5D5D50068636000A468 3600CF591500B64C1000AE481000AD481100AD471000AD481100AE481000B84C 1000D35E1800A568390077727000FFFFFFFF00000000D6D6D600616A620038A6 510017D1330010B627000EAE25000FAD25000EAD230011AD260010AE260010B8 280019D537003BA7520071787200E4E4E400D5D5D500606068003638A4001524 CF00101FB600101FAE001120AD001020AD001120AD00101FAE00101FB8001825 D300393BA50070717700FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFA8A8A8009F663C00D461 1A00B54C1000B04A1000AD521000C6865800FFFFFF00C6855800AD521100AD52 1100B74D1000C869280090644100B9B9B900FDFDFD00A9A9A9003DA152001BD6 3B0010B528000EB026000EB02600000000000EB026000EB0260010B0270010B0 270010B7290029CA480042925400BABABA00A8A8A8003C3D9F001A25D400101E B500101EB000101EB000101EB000101EB000101EB000101EB000101EB000101E B700282EC80041419000B9B9B900FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFF8C7C7100B26B3900C253 1000B34F1100B34E1100B054100093460D004F26070093460D00B0541000B053 0E00B34D1000C9561100A667380098918C00F6F6F600728E79003AB4530010C2 2C000FB32A000FB328000000000000000000000000000EB428000FB32A0011B3 2C0010B3290011C92E0039A851008D9A900071718C00393DB200101DC200111C B300111DB300FFFFFF00C4C6E100101CB300C4C7E100FFFFFF00111CB300101C B300111FC9003839A6008C8C9800FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFF926E5300CC733400B951 1100B6511000B7511000B3591100BB682800FFFFFF00C1763B00B4571000B456 0E00B6511000BF561300C4753A0093796500EDEDED005494610036CE530011B9 2D000EB62B0000000000000000000000000000000000000000000FB72C000EB7 2B0010B62D0013BF31003CC658006795720053539200343ACC00111CB900101A B600101AB700C3C4D400FFFFFF00C5C6E200FFFFFF00C3C4D400101AB700101A B600131DBF003A3DC40065659300FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFF9C6F4C00D77C3A00BC56 1400BA531000BA541000A3510E00A3510E00D4C7C200FFFFFF00C57C3F00BE66 1500BA551100BD5A1800D27D3E009B795D00EFEFEF004D9E5F003CDA5C0014BC 32000EBA2C000000000000000000008115000000000000000000000000000FBA 2E000FBA2E0018BD360040D45F005E9D6C004C4D9C003A3FD700141DBC001019 BA001018BA000A0F7300C3C4D400FFFFFF00C3C4D5000A0F73001119BA001119 BA001820BD003E42D2005D5D9B00FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFA0755300D8874A00C566 2100BD581100BD571000BA5E1000BA5E100086460C00D4C7C200FFFFFF00BE65 1500BD561100C8692700CD834A00A1816800F8F8F80055A266004CDB690021C5 42000FBD300000831600008316000FBD30000083160000000000000000000000 00000FBD2F0027C846004BCF68006AA376005353A0004A4DD8002126C5001118 BD001017BD00C5C6E300FFFFFF00C3C4D500FFFFFF00C4C6E3001117BD001119 BD00272DC8004A4BCD00686AA100FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFAC8B7000C9875300D57E 3D00C3601800C05C1100FFFFFF00D4C7C20089470C00D2C1B800FEFEFE00BD65 1500C4641C00DB884700B97E4E00B9A49200FEFEFE0071AE7F0055CB70003DD5 5D0018C33B0011C0350010C0340011C035000EC0310000851600000000000000 000019C43B0047DB670050BB680094BB9D007070AC005354C9003D40D500181D C3001115C000FFFFFF00C3C4D5000A0D7600C3C4D500FFFFFF001116C0001C20 C4004749DB004E4EB9009294B900FFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFD7CEC800A9714200EFA7 6D00D27E3B00C7651C00572E0800FFFFFF00F7ECE200F8EEE500A78C7700BE59 0D00D6824000F0A97100A3653500FFFFFFFF00000000C9D9CC0044AB5C006DEF 8B003BD25D001CC73F0013C4390011C3370010C235000EC33200028718000A8A 1F003AD55A0073F2900037A55000EDEDED00C8C8D7004242A9006D6DEF003B3C D2001C20C7000A0C6A000A0C78001014C2000A0C78000A0C6A002021C8004042 D6007171F0003536A300FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFB2896700C990 6000EDAC7300DB8D4D00CE7F2F00955B21006C3F140094591F00D1712700DB86 4200F0B07900BE875A00BA977C00FFFFFFFF00000000FAFAFA0069B47A0061CB 7B0073ED91004DDB6E0035D259002BCE510027CD4B002ACE4F0036D25B0052DD 720079F096005CC173007EBC8C00FEFEFE00FFFFFFFF6767B2006160C9007573 ED004D4DDB003535D2002B2BCE002729CD002A2BCE003736D2005252DD007B79 F0005A5ABE007C7CBA00FFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFAC79 4F00CC956600F6BE8A00EBAF7600E6A46800E4A06400E6A46900EDB07900F7C0 8C00C58F6000B2856100FFFFFFFFFFFFFFFF0000000000000000ECF2ED0050AE 650068CE81008AF6A70076EB950068E6880064E4840069E6890079ED97008CF7 A90062C77A0062B47400F8F8F80000000000FFFFFFFFFFFFFFFF4F4FAC006766 CC008E8AF6007A76EB006B68E6006764E4006C69E6007C79ED00908CF7006260 C5006161B200FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFB5876400B8835700DDA97B00F2BF8E00F1BD8D00F1BF8F00DAA57700B37D 5100BA906F00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000EBF2 ED0065B7770059BA70007DDF950090F4AB008FF3AA0091F3AA0078DC920053B5 690071BC8200F7F9F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF6464 B5005757B8007D7BDD00928EF200908DF100928FF1007977DA005151B3006F6F BA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFDECCBE00BB916E00A9714300A9704300A9714400BE977800E4D6 CA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 000000000000BFE0C70070BD810045AB5C0045AB5C0046AB5C0079C08A00CBE6 D10000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFBEBFDE006E70BB004344A9004343A9004446A9007878BE00CACAE400FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000100000000100010000000000800000000000000000000000 000000000000000000000000FFFFFF000000F007000000000000E00300000000 0000C00100000000000080000000000000008000000000000000010000000000 0000038000000000000007C000000000000006E0000000000000007000000000 0000003000000000000080000000000000008000000000000000C00100000000 0000E003000000000000F80F0000000000000000000000000000000000000000 000000000000} end object RtcClientModule1: TRtcClientModule Client = RtcHttpClient1 AutoSessions = True ModuleFileName = '/mytest' FunctionGroup = RtcFunctionGroup1 Left = 40 Top = 112 end object RtcFunctionGroup1: TRtcFunctionGroup Left = 144 Top = 40 end object RtcResult1: TRtcResult OnReturn = RtcResult1Return Left = 216 Top = 48 end end