AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ServerSocket1ClientRead
Thema durchsuchen
Ansicht
Themen-Optionen

ServerSocket1ClientRead

Ein Thema von yildi · begonnen am 24. Sep 2006 · letzter Beitrag vom 26. Sep 2006
 
DelphiSourcer

Registriert seit: 7. Feb 2005
43 Beiträge
 
Delphi 2006 Professional
 
#11

Re: ServerSocket1ClientRead

  Alt 26. Sep 2006, 11:14
Hallo Delphi Freunde!

Bin grad dabei, mich mit WinSockets zu besch„ftigen. IN DSDT gibt es dazu ein Handbuch und ein
Programmbeispiel. Das habe ich mir runtergeladen, um jetzt damit experimentieren zu können.
Leider habe ich ein Problem, das ich selber nicht so schnell lösen kann. Hier zuerst der Quelltext:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls;

type
  TForm1 = class(TForm)
    btnStart: TButton;
    btnStop: TButton;
    btnSend: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure btnStartClick(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure btnSendClick(Sender: TObject);
    procedure ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    Client: TClientSocket;
    Server: TServerSocket;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnStartClick(Sender: TObject);
begin

  Server.Port:=44044;
  Client.Port:=44044;
  Client.Host:='127.0.0.1'; //Localhost
  Server.Open;
  Client.Open;

end;

procedure TForm1.btnStopClick(Sender: TObject);
begin

  Client.Close;
  Server.Close;

end;

procedure TForm1.btnSendClick(Sender: TObject);
begin

  if Client.Active = true then
  begin
     Client.Socket.SendText(Edit1.Text);
     Edit1.Text:='';
     ServerClientRead(Sender,Client);
  end;
end;

procedure TForm1.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin

  Memo1.Lines.Add(Socket.ReceiveText);

end;

procedure TForm1.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin

  Memo1.Lines.Add('***Connected.')

end;

procedure TForm1.ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin

  Memo1.Lines.Add('***Disconnected.');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Client := TClientSocket.Create(self);
   Server := TServerSocket.Create(self);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   Client.Free;
   Server.Free;
end;

end.
Wenn ich das Ereignis Senden auslöse <btnSendClick>, will ich den gesendeten Text im Memo sehen.
Warum ist in diser Methode der Aufruf von ServerClientRead() so wie oben nicht richtig? Wenn ich
btnSend anklicke, erhalte ich eine EAccessViolation. Muss ich vielleicht noch eine Connect-Methode
aufrufen, die im Beispiel nicht erwähnt, aber in den Tiefen der Socket-Klasse verborgen ist?

DelphiSourcer
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz