📄 umainserver.pas
字号:
unit uMainServer;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, uROClient, uROBINMessage, uROClientIntf, uROServer,
uROIndyHTTPServer, uROIndyTCPServer, uROPoweredByRemObjectsButton,
Spin, IdBaseComponent, IdComponent, IdServerIOHandler, IdServerIOHandlerSocket,
SBUtils, SBCustomCertStorage, SBX509, IdSSL,
SBIndyServerIOHandler10;
type
TfrmMainServer = class(TForm)
ROMessage: TROBINMessage;
IndyHTTPServer: TROIndyHTTPServer;
IndyTCPServer: TROIndyTCPServer;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
GroupBox2: TGroupBox;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Label2: TLabel;
seTCPPort: TSpinEdit;
cbTCPMsg: TComboBox;
Label5: TLabel;
Label6: TLabel;
Label9: TLabel;
SpinEdit2: TSpinEdit;
ComboBox2: TComboBox;
Label10: TLabel;
Label13: TLabel;
eUploadDir: TEdit;
IOHandler: TElIndySSLServerIOHandler;
ClientCertStorage: TElMemoryCertStorage;
ServerCertStorage: TElMemoryCertStorage;
procedure IOHandlerCertificateValidate(Sender: TObject;
X509Certificate: TElX509Certificate;
IOHandler: TElClientServerIndySSLIOHandlerSocket; var Validate: Boolean);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure IndyHTTPServerAfterServerActivate(Sender: TObject);
procedure IndyHTTPServerAfterServerDeactivate(Sender: TObject);
procedure IndyTCPServerAfterServerActivate(Sender: TObject);
procedure IndyTCPServerAfterServerDeactivate(Sender: TObject);
private
protected
public
end;
var
frmMainServer: TfrmMainServer;
implementation
{$R *.DFM}
procedure TfrmMainServer.Button1Click(Sender: TObject);
begin
IndyHTTPServer.IndyServer.DefaultPort := seTCPPort.Value;
IndyHTTPServer.Active := true;
end;
procedure TfrmMainServer.Button2Click(Sender: TObject);
begin
IndyHTTPServer.Active := false;
end;
procedure TfrmMainServer.Button3Click(Sender: TObject);
begin
if IndyHTTPServer.Active then
Button3.Caption := 'Status=Active'
else Button3.Caption := 'Status=Inactive';
end;
procedure TfrmMainServer.Button4Click(Sender: TObject);
begin
IndyTCPServer.IndyServer.DefaultPort := SpinEdit2.Value;
IndyTCPServer.Active := true;
end;
procedure TfrmMainServer.Button5Click(Sender: TObject);
begin
IndyTCPServer.Active := false;
end;
procedure TfrmMainServer.Button6Click(Sender: TObject);
begin
if IndyTCPServer.Active then
Button6.Caption := 'Status=Active'
else Button6.Caption := 'Status=Inactive';
end;
procedure TfrmMainServer.IndyHTTPServerAfterServerActivate(
Sender: TObject);
begin
Button3.Caption := 'Status = Active';
end;
procedure TfrmMainServer.IndyHTTPServerAfterServerDeactivate(
Sender: TObject);
begin
Button3.Caption := 'Status = InActive';
end;
procedure TfrmMainServer.IndyTCPServerAfterServerActivate(Sender: TObject);
begin
Button6.Caption := 'Status = Active';
end;
procedure TfrmMainServer.IndyTCPServerAfterServerDeactivate(
Sender: TObject);
begin
Button6.Caption := 'Status = InActive';
end;
procedure TfrmMainServer.IOHandlerCertificateValidate(
Sender: TObject; X509Certificate: TElX509Certificate;
IOHandler: TElClientServerIndySSLIOHandlerSocket; var Validate: Boolean);
begin
Validate := true;
// NEVER do this in real life since this makes security void.
// Instead validate the certificate as described on http://www.eldos.com/sbb/articles/1966.php
end;
initialization
SetLicenseKey('ADDCD14AD06709806817E0B3D7BFD0A2222D536FE156466C5D5FE65DB5DEAE76' +
'FFDEBC07E915A5751C12C01C783958872A38E4A5EDA140E7247E0F2E56442A3C' +
'F3E9347AD8FDE52083A0DFC86BC00ECB0FD0CF1B51159A2BCB84F6EA6349EF47' +
'5C15A59AFCC55F7C3AAD26C279628B5D91B1DC94BD2385354A70CCA3B76101D9' +
'F41C84A639FC3CCE4BA8F0CC4A66DCD150114A3F58C1AD46B7B94643741BC20A' +
'8DCA83AB921480951B423CAA19EF1863A47CA2C3422E7E5634BED98939A5AE43' +
'DE1E4BAD79E66D8A5C973B3455656C8C9B6FF024FADD6CDA02D0F506D98493C8' +
'BD1ED7B237DB75FA31F2C82654490CDDDEE24E19939137B9E1DB05508733B22F');
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -