初学ClientSocket/ServerSocket编程,作了个小例子,请大侠看一下是那的错误!
  服务器端:
Unit Unit1;InterfaceUses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls;Type
  TForm1 = Class(TForm)
    CbProto: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    EdtPort: TEdit;
    ServerSocket1: TServerSocket;
    Label3: TLabel;
    EdtMsg: TEdit;
    BtCon: TButton;
    BtPost: TButton;
    Procedure CbProtoClick(Sender: TObject);
    Procedure BtPostClick(Sender: TObject);
    Procedure BtConClick(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;Var
  Form1: TForm1;Implementation{$R *.dfm}Procedure TForm1.CbProtoClick(Sender: TObject);
Begin
  Case CbProto.ItemIndex Of //
    0: EdtPort.Text := '80';
    1: EdtPort.Text := '21';
    2: EdtPort.Text := '';
  End; // case
End;Procedure TForm1.BtPostClick(Sender: TObject);
Begin
    ServerSocket1.Socket.SendText(EdtMsg.text);
End;Procedure TForm1.BtConClick(Sender: TObject);
Begin
  ServerSocket1.Service := CbProto.Text;
  Case CbProto.ItemIndex Of //
    0: ServerSocket1.Port := 80;
    1: ServerSocket1.Port := 21;
  Else
    ServerSocket1.Port := strtoint(EdtPort.Text);
  End; // case
  ServerSocket1.Active := true;
End;End.客户端:
Unit Unit1;InterfaceUses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;Type
  TForm1 = Class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    ClientSocket1: TClientSocket;
    Label3: TLabel;
    CbProto: TComboBox;
    EdtPort: TEdit;
    EdtHostName: TEdit;
    BtCreatCon: TButton;
    Label4: TLabel;
    Memo1: TMemo;
    EdtAddress: TEdit;
    Procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    Procedure BtCreatConClick(Sender: TObject);
    Procedure CbProtoClick(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;Var
  Form1: TForm1;Implementation{$R *.dfm}
function Get_ComputerName: String;
var
  iSize: LongWord;
  ComputerName: PChar;
begin
  iSize := MAX_COMPUTERNAME_LENGTH + 1;
  GetMem(ComputerName, iSize);
  GetComputerName(ComputerName, iSize);
  Result := ComputerName;
  FreeMem(ComputerName);
end;
Procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
Begin
  Memo1.Lines.add(Socket.ReceiveText);
End;Procedure TForm1.BtCreatConClick(Sender: TObject);
Begin
  ClientSocket1.Service := CbProto.Text;
  ClientSocket1.Host := Get_ComputerName;
  If trim(EdtHostName.Text) = '' Then
    ClientSocket1.Address := EdtAddress.Text;
  Case CbProto.ItemIndex Of //
    0: ClientSocket1.Port := 80;
    1: ClientSocket1.Port := 21;
  Else
    ClientSocket1.Port := strtoint(EdtPort.Text);
  End; // case
  EdtHostName.Text:=Get_ComputerName;
  ClientSocket1.Active := true;
End;Procedure TForm1.CbProtoClick(Sender: TObject);
Begin
  Case CbProto.ItemIndex Of //
    0: EdtPort.Text := '80';
    1: EdtPort.Text := '21';
    2: EdtPort.Text := '';
  End; // case
End;End.