Witam,
W programie uzywam komponentow TClientSocket i TServerSocket. Podczas odbierania rekordow wyslanych przez klienta na serwer, probuje je dodac do Memo1, ale wyswietla sie blad po stronie serwera (Accer violation)
Kod klienta
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;
type
TForm1 = class(TForm)
Memo1: TMemo;
ClientSocket1: TClientSocket;
btnPolacz: TButton;
btnWyslij: TButton;
Label1: TLabel;
procedure btnPolaczClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnWyslijClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TMojRekord = record
msg: String;
end;
var
MojRekord:TMojRekord;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnPolaczClick(Sender: TObject);
begin
ClientSocket1.Active:=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MojRekord.msg:='Jakas tam tresc';
Label1.Caption:=MojRekord.msg;
end;
procedure TForm1.btnWyslijClick(Sender: TObject);
begin
ClientSocket1.Socket.SendBuf(MojRekord,SizeOf(MojRekord));
end;
end.
i kod serwera:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Memo1: TMemo;
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TMojRekord = record
msg: String;
end;
var
MojRekord:TMojRekord;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.ReceiveBuf(MojRekord, SizeOf(MojRekord));
Memo1.Lines.Add(MojRekord.msg);
end;
end.
Jezeli ktos wie co zrobilem zle to prosze o pomoc.