Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Socketfehler 10061 (https://www.delphipraxis.net/5740-socketfehler-10061-a.html)

xpmstos 17. Jun 2003 12:39


Socketfehler 10061
 
Guten Tag,

ich erhalte folgende exeption: "Asynchroner Socketfehler 10061"
ich habs auf Windows 2000 Prof, Windows XP Home Edition & Windows XP Prof. getestet (bei XP ist die Standard-Firewall deaktiviert)

Aus dem PSDK:

Zitat:

WSAECONNREFUSED
(10061)
Connection refused.
No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.
Und hier die sinngemässe deutsche Übersetzung der Fehler-Beschreibung (Winsock Fehlermeldungen):

Zitat:

10061 WSAECONNREFUSED Angerufener möchte keinen Verbindungsaufbau
Hier mein Server-Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Client: TClientSocket;
    Server: TServerSocket;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  strCommand: string;
begin
  begin
    Server.Port:=44044;
    Client.Port:=44044;
    Client.Host:=Edit1.Text; // Client-IP z.b.: 192.168.0.1
    Server.Open;
    Client.Open;
    strCommand:='Command1';
    if Client.Active = true then
    begin
      Client.Socket.SendText(strCommand);
    end;
    Client.Close ;
    Server.Close ;
    strCommand:= '';
  end;
end;

end.
Leider habe ich noch keine Lösung für dieses Problem gefunden.

gruß xpmstos

Chewie 17. Jun 2003 17:44

Wie die Fehlermeldung sagt, der Fehler liegt nicht bei dir, sondern bei deinem Verbindungsziel. Es lehnt die Verbindung ab. Wahrscheinlich existiert kein Server an dem von dir angegebenen Socket.

thomasdrewermann 17. Jun 2003 19:39

Wenn du das Schliessen der Sockets weg lässt kommt der Fehler nicht.

xpmstos 23. Jun 2003 10:43

@ thomasdrewermann:
danke für den tip, habe es ausprobiert, leider kommt immer noch der selbe fehler, entweder wird die exception automatisch abgefangen (ich habe keine exceptions eingebaut) und eine message erscheint, oder der debugger meldet sich mit dieser fehlermeldung.

leider hatte ich es auch schon früher mal unter delphi 6 hingekriegt, und und delphi 7 auch, nur jetzt auf einmal wills nicht mehr...

@ Chewie:
ich erhalte diese fehlermeldung nur wenn ich den string an eine existierende IP sende (client muss an sein), ansonsten passiert keine reaktion. wenn ich auf meinem client den client laufen lasse erhalte ich ebenfalls diese fehlermeldung. als OS für den client teste ich mit w2k-prof, entwickle und teste den server auf win xp prof. hier mal den code vom client:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Client: TClientSocket;
    Server: TServerSocket;
    procedure ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  strCommand: string;
begin
  strCommand:=Socket.ReceiveText;
  if(strCommand='Command1') then
  begin
    Label1.Caption := 'Signal erhalten';
  end;
  strCommand := '';
end;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.

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