unit Unitmain;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ScktComp;type
  TForm1 = class(TForm)
    ClientSocket: TClientSocket;
    ServerSocket: TServerSocket;
    connectButton: TButton;
    disconnectButton: TButton;
    listenButton: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    StatusBar1: TStatusBar;
    procedure listenButtonClick(Sender: TObject);
    procedure connectButtonClick(Sender: TObject);
    procedure disconnectButtonClick(Sender: TObject);
    procedure ServerSocketAccept(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocketClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocketClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocketClientError(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
    procedure ClientSocketConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
      IsServer: Boolean;
      Server,ConnectPort,ListenPort: String;  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.connectButtonClick(Sender: TObject);begin
    if Clientsocket.Active then
       begin
          clientsocket.Active :=false;
          statusbar1.Panels[0].Text := '';
       end;
        Server := '127.0.0.1';
        ConnectPort := '54039';
          if Length(server) > 0 then
{              with clientsocket do}
            begin
                    clientsocket.Host:=Server;
                    clientsocket.Port := StrToInt(ConnectPort);
                    Clientsocket.Active :=True;
            end
        {      begin
                Host := Server;
                Port := StrToInt(ConnectPort);
                Active := True;
              end;             }
end;procedure TForm1.disconnectButtonClick(Sender: TObject);
begin
   clientsocket.Active:=true;
   Statusbar1.Panels[0].Text:='';
end;procedure TForm1.ServerSocketAccept(Sender: TObject;
  Socket: TCustomWinSocket);begin
    IsServer := True;
    Statusbar1.Panels[0].Text:='Accept connection form:' + Socket.RemoteAddress;
end;
procedure TForm1.ServerSocketClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  ShowMessage(IntToStr(ErrorCode));
end;
procedure TForm1.ClientSocketError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
   memo2.Lines.Add('Error connecting to:'+IntToStr(ErrorCode));
   ErrorCode :=0;
end;end.