Einzelnen Beitrag anzeigen

subdid

Registriert seit: 15. Mär 2005
2 Beiträge
 
#1

Chat Problem - Asynchroner Socket-Fehler 10061

  Alt 22. Mär 2005, 16:04
Hi leute

also leider bin ich in Delphi nochn echt dummer noob *g* aber naja aller anfang ist schwer und so hab ich mir von Ultimator das chattut angeschaut. beim ersten versuch hab ich direkt einen server und client in einem geschrieben, was jedoch den nachteil hatte, dass die leute mit router nicht damit klar kamen, also hab ich 2 programme geschrieben. wenn ich jetzt den server und das alte programm (server + client) laufen lasse, kommt kein fehler, bei dem neuen hat sich aber ein fehler anscheinend eingeschlichen und ich find ihn nicht (kommt immer asynchroner socket-fehler 10061 -- was ja bedeutet so viel ich gelesen hab, dass der server / client zicken macht, am server kanns aber jedoch nicht liegen). also dachte ich mir poste ich mal den quelltext (hab auch schon mit dem alten verglichen, aber den fehler hab ich nicht gefunden)


Unit 1
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    RichEdit1: TRichEdit;
    RichEdit2: TRichEdit;
    ButtonSenden: TButton;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    ButtonConnect: TButton;
    ButtonOptions: TButton;
    procedure RichEdit2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ButtonOptionsClick(Sender: TObject);
    procedure ButtonConnectClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    nickname: String;
    server: String;
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.RichEdit2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var rechne: integer;
begin
  rechne := trunc(100 / 500 * Length(RichEdit2.Text));
  ProgressBar1.Position := rechne;
  Label1.Caption := IntToStr(Length(RichEdit2.Text)) + ' / 500 Zeichen';

  if(Length(RichEdit2.Text)>0) AND (ClientSocket1.Active=true) then
    ButtonSenden.Enabled := true;
end;

procedure TForm1.ButtonOptionsClick(Sender: TObject);
begin
  Form2.Show;
end;

procedure TForm1.ButtonConnectClick(Sender: TObject);
begin
  ClientSocket1.Active := false;
  ClientSocket1.Host := server;
  ClientSocket1.Active := true;
end;

end.

Unit 2
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    ButtonSpeichern: TButton;
    Label1: TLabel;
    Label2: TLabel;
    EditNickname: TEdit;
    EditServer: TEdit;
    procedure ButtonSpeichernClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.ButtonSpeichernClick(Sender: TObject);
begin
  Form1.nickname := EditNickname.Text;
  Form1.server := EditServer.Text;
  Form2.Close;
end;

end.

also falls wirklich einer bock hätte sich die mühe zu machen und sich das ma anzuschaun - ich wär ihm auf jeden fall dankbar
  Mit Zitat antworten Zitat