Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Client/Server- Socket Sendeprobleme (https://www.delphipraxis.net/79475-client-server-socket-sendeprobleme.html)

buyden 23. Okt 2006 12:48


Client/Server- Socket Sendeprobleme
 
Hi,
ich möchte mittels Client/Server-Socket Strings übers Netzwerk verschicken.
Dazu hab ich folgenden Code:
ServerSocket:
Delphi-Quellcode:
procedure Tfrmmain.FormCreate(Sender: TObject);
begin
  list:=tstringlist.Create;
  server.Port:=10024;
  server.Open;
  list.Append(formatdatetime('dd.mm.yyyy-hh:mm:ss',now)+' - Server gestartet');
  memmain.Lines:=list;
  list.SaveToFile('mcserver.log');
end;

procedure Tfrmmain.ServerClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  list.insert(0,formatdatetime('dd.mm.yyyy-hh:mm:ss',now)+' - Client verbunden');
  memmain.Lines:=list;
  list.SaveToFile('mcserver.log');
end;

procedure Tfrmmain.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  memmain.Lines.Insert(0,server.socket.ReceiveText);
end;
Client:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  if client.Active=false then
  begin
    client.Host:='127.0.0.1';
    client.Port:=10024;
    client.open;
    button2.Caption:='Disconnect';
  end
  else
  begin
    client.Close;
    button2.Caption:='Connect';
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if client.Active=true then
    client.Socket.SendText(edit1.Text);

end;
Das Verbinden funktioniert, auch das Trennen auf die gleiche Weise aber beim Senden bekomm ich immer nen Fehler, dass der Socket nicht verbunden ist und keine Adresse angegeben wurde.

Was mach ich falsch???

Carlo91 23. Okt 2006 13:27

Re: Client/Server- Socket Sendeprobleme
 
Hi,
also bei mir geht das!
hab hier noch mal den Code:
Delphi-Quellcode:
...
var
  FrmMain: TFrmMain;
  List: TStringList;

implementation

{$R *.dfm}

// Client:
// ##################################################################################
procedure TFrmMain.Button1Click(Sender: TObject);
begin
  if Client.Active = False then
  begin
    Client.Host :='127.0.0.1'; // Client.Host :='localhost';
    Client.Port :=10024;
    Client.Open; // Client.Active :=True;
    Button1.Caption :='Disconnect';
  end
  else
  begin
    Client.Close; // Client.Active :=False;
    Button1.Caption :='Connect';
  end;
end;

procedure TFrmMain.Button2Click(Sender: TObject);
begin
  if Client.Active = True then Client.Socket.SendText(Edit1.Text);
end;
// ##################################################################################

// Server:
// ##################################################################################
procedure TFrmMain.FormCreate(Sender: TObject);
begin
  List :=TStringList.Create;
  Server.Port :=10024;
  Server.Open; // Server.Active :=True;
  List.Append(FormatDateTime('dd.mm.yyyy-hh:mm:ss', Now)+' - Server gestartet');
  MemMain.Lines:=List;
  List.SaveToFile('mcserver.log');
end;

procedure TFrmMain.ServerClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  List.Insert(0, FormatDateTime('dd.mm.yyyy-hh:mm:ss', Now)+' - Client verbunden');
  MemMain.Lines :=List;
  List.SaveToFile('mcserver.log');
end;

procedure TFrmMain.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  MemMain.Lines.Insert(0, Socket.ReceiveText);
end;
// ##################################################################################

end.
MfG Carlo

buyden 23. Okt 2006 13:39

Re: Client/Server- Socket Sendeprobleme
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich bekomm dann immer diese Meldung:

Carlo91 23. Okt 2006 13:42

Re: Client/Server- Socket Sendeprobleme
 
Hast du auf den Connect button geklickt bevor du etwas gesendet hast???

MfG Carlo

buyden 23. Okt 2006 13:49

Re: Client/Server- Socket Sendeprobleme
 
Ja, ich hab auch versucht, das alles in einer Prozedur zu lösen aber mit dem gleichen Ergebnis.
Laut Tutorial sollte das ja auch laufen.

Carlo91 23. Okt 2006 14:03

Re: Client/Server- Socket Sendeprobleme
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das geht ja auch nur bei dir nicht!

Hab mal den code compilert und hochgeladen mit exe datei!

MfG Carlo

buyden 23. Okt 2006 14:36

Re: Client/Server- Socket Sendeprobleme
 
Das funktioniert. Ich hab das ganze zwar in zwei getrennten Programmen, sollte ja aber keinen großen Unterschied machen.
Sagt jemandem "Asynchroner Socket-Fehler 10057" irgendetwas? Das sagt er nämlich auch noch.

Carlo91 23. Okt 2006 15:05

Re: Client/Server- Socket Sendeprobleme
 
Ein oder Zwei programme macht keinen unterschied!
und den error hat ich auch schon oft ich hab lange nicht mehr mit sochts gearbeitet aber ich glaub der error kommt wenn die verbindung zum server oder clienten nicht richtig getrennt wird bin mir aber nicht sicher :!: :?: :!:

MfG Carlo

buyden 23. Okt 2006 15:39

Re: Client/Server- Socket Sendeprobleme
 
Der "Asynchrone Socket-Fehler" wird vom Client beim Senden ausgelöst. Kurz drauf schimpft auch der Server rum.
Die Verbindung wird eigentlich nur über den Connect-Button hergestellt oder getrennt.

Carlo91 23. Okt 2006 15:50

Re: Client/Server- Socket Sendeprobleme
 
da hab ich auch keine ahnung wiso da ein error kommt musst einfach mal Googlen was der error bedeutet :!:

MfG Carlo


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz