| Zitat: |
---------------------------
Benachrichtigung über Debugger-Problem
---------------------------
In Projekt BLABLUBB\Projects\Project1.exe trat ein Problem mit folgender Meldung auf: 'Zugriffsverletzung bei 0x400095d1: Schreiben von Adresse 0x00030dc8'. Prozess angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK
---------------------------
|
Client:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, Sockets;
type TForm1 = class(TForm) Memo1: TMemo; Memo2: TMemo; ClientSocket1: TClientSocket; Button1: TButton; procedure Memo2KeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
type CustomRec = record Text: String; Zahl: byte; end;
implementation
{$R *.dfm}
procedure TForm1.Memo2KeyPress(Sender: TObject; var Key: Char); var Rec: CustomRec; begin if (Key = #13) then begin key := #0; Rec.Text := Memo2.Text; Rec.Zahl := 1; if (ClientSocket1.Active = True) then ClientSocket1.Socket.SendBuf(Rec,SizeOf(Rec)); Memo1.Lines.Add('['+TimeToStr(Time)+'] : '+Memo2.Text); Memo2.Clear; end; end;
procedure TForm1.FormShow(Sender: TObject); begin Memo2.SetFocus; end;
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.open; Memo1.Lines.Add(format('[%s] : %s',[TimeToStr(TIME),'Opened Connection to Server....'])); end;
end. |
und Server
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls, Sockets;
type TForm2 = class(TForm) Memo1: TMemo; ServerSocket1: TServerSocket; procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); private public end;
var Form2: TForm2;
implementation
type CustomRec = record Text: String; Zahl: byte; end; {$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject); begin ServerSocket1.open; Memo1.Lines.Add('Server Activated....'); Memo1.Lines.Add('Open on Port: 7544'); Memo1.Lines.Add('Wait for Clients....'); end;
procedure TForm2.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var Rec: CustomRec; begin ServerSocket1.Socket.connections[0].ReceiveBuf(Rec,SizeOf(Rec)); Memo1.Lines.Add(Rec.Text); end;
procedure TForm2.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Someone Connected...'); end;
end. |
So nun Ganz oben ist die Fehlermeldung die ich bekomme wenn ich etwas in der form wo der Server drauf ist ausgeben will (z.b. ins memo schreiben)
Genau dann bekomme ich den Zugriffsfehler und ich weis nicht warum...
Hat vielleich wer einen Vorschlag?