📄 demo2main.pas
字号:
unit Demo2Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ACMIn, ACMOut, ACMConvertor, ScktComp;
type
TfmMain = class(TForm)
ACMC: TACMConvertor;
ACMI: TACMIn;
SSocket: TServerSocket;
procedure FormCreate(Sender: TObject);
procedure ACMIBufferFull(Sender: TObject; Data: Pointer;
Size: Integer);
procedure SSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure SSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure SSocketClientError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
procedure TransmitData(Buffer : Pointer; Size : Integer);
procedure UpdateCount;
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
{$R *.DFM}
procedure TfmMain.FormCreate(Sender: TObject);
begin
ACMC.InputBufferSize := ACMC.FormatIn.Format.nAvgBytesPerSec;
ACMI.BufferSize := ACMC.InputBufferSize;
ACMC.Active := True;
ACMI.Open(ACMC.FormatIn);
UpdateCount;
end;
procedure TfmMain.ACMIBufferFull(Sender: TObject; Data: Pointer;
Size: Integer);
var
NewSize : Integer;
begin
Move(Data^,ACMC.BufferIn^,Size);
NewSize := ACMC.Convert;
TransmitData(ACMC.BufferOut,NewSize);
end;
procedure TfmMain.UpdateCount;
begin
Caption := 'Connection count is ' + IntToStr(SSocket.Socket.ActiveConnections);
end;
procedure TfmMain.SSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
UpdateCount;
end;
procedure TfmMain.SSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
UpdateCount;
end;
procedure TfmMain.TransmitData(Buffer : Pointer; Size: Integer);
var
X : Integer;
begin
for X:=0 to SSocket.Socket.ActiveConnections -1 do
try
SSocket.Socket.Connections[X].SendBuf(Buffer^,Size);
except
end;
end;
procedure TfmMain.SSocketClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ShowMessage('Encountered error ' + IntToStr(ErrorCode));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -