Einzelnen Beitrag anzeigen

ppirokke

Registriert seit: 25. Mai 2004
Ort: Simmern
16 Beiträge
 
#1

bekomme asynchronous socket error 10060 nicht uner Kontrolle

  Alt 25. Mai 2004, 18:40
Hallo zusammen ^^

Ich habe folgendes Problem:
Zum Einstieg in Server und Clientverwendung wollte ich erstmal einen kleinen chat programmieren. Nun besteht aber das Problem, dass ich immer folgenden Fehler erhalte, was natürlich klar ist, wenn der andere PC das Programm noch nicht gestartet hat: asynchronous socket error 10060 . Dann wollte ich den Fehler einfach umgehen und habe jetz folgenden Quelltext vorliegen, aber es klappt wie immer nicht ^^ Der Fehler tauscht weiterhin auf :

Delphi-Quellcode:
procedure TForm1.Beenden1Click(Sender: TObject);
begin
 ServerSocket.active:=false; //server schließen
 ClientSocket.active:=false; //client schließen
 close
end;

procedure TForm1.StartButtonClick(Sender: TObject);
begin
 nick:=nickEdit.text;
 Timer.Enabled:=true;
 GroupBox1.Visible:=false;
 ChatGB.Visible:=true;
                          //server
 ServerSocket.Port := 23; //Festlegung des Ports
 ServerSocket.active := true; //Aktivierung der ServerSocket
                           //client
if ip1Edit.text<>''
 then begin
 ClientSocket.Port := 23; //Festlegung des Ports
 ClientSocket.Host := ip1Edit.text; //IP des Zielrechners
      try
 ClientSocket.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket.active := true; //Aufbau der Verbindung
      end;
      end;
if ip2Edit.text<>''
 then begin
 ClientSocket1.Port := 23; //Festlegung des Ports
 ClientSocket1.Host := ip2Edit.text; //IP des Zielrechners
      try
 ClientSocket1.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket1.active := true; //Aufbau der Verbindung
      end;
      end;
if ip3Edit.text<>''
 then begin
 ClientSocket2.Port := 23; //Festlegung des Ports
 ClientSocket2.Host := ip3Edit.text; //IP des Zielrechners
      try
 ClientSocket2.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket2.active := true; //Aufbau der Verbindung
      end;
      end;
if ip4Edit.text<>''
 then begin
 ClientSocket3.Port := 23; //Festlegung des Ports
 ClientSocket3.Host := ip4Edit.text; //IP des Zielrechners
      try
 ClientSocket3.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket3.active := true; //Aufbau der Verbindung
      end;
      end;
end;

procedure TForm1.ServerSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo.Lines.Add(Socket.ReceiveText); //Texteingang von Clients
end;

procedure TForm1.OKButtonClick(Sender: TObject);
var text:string;
begin
text:='['+nick+']: '+TextEdit.text; //nick in chat eingefügt
Memo.Lines.Add(text);
if ClientSocket.Active then
   ClientSocket.Socket.SendText(text); //senden der Nachricht 1
if ClientSocket1.Active then
   ClientSocket1.Socket.SendText(text); //senden der Nachricht 2
if ClientSocket2.Active then
   ClientSocket2.Socket.SendText(text); //senden der Nachricht 3
if ClientSocket3.Active then
   ClientSocket3.Socket.SendText(text); //senden der Nachricht 4
TextEdit.Text:='';
end;

procedure TForm1.aktualisieren1Click(Sender: TObject);
begin
x:=9
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case Key of // abfrage welche taste****
VK_RETURN: // return
        begin
        OKButton.Click;
        Key:=0; // Taste auf 0 gesetzt
        end;

end;
end;

procedure TForm1.Clienthinzufgen1Click(Sender: TObject);
begin
 GroupBox1.Visible:=true;
 ChatGB.Visible:=false;
 Timer.enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 x:=9;
 Form1.StatusBar1.Panels[0].Text:= 'LAN-chat';
 Form1.StatusBar1.Panels[1].Text:= 'v 1.0';
 Form1.StatusBar1.Panels[2].Text:= '(c) Ppirokke';
 Form1.StatusBar1.Panels[3].Text:= '@ beta';
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
x:=x+1;
 if x=10 then
  begin
   if ip1Edit.text<>''
 then begin
 ClientSocket.Port := 23; //Festlegung des Ports
 ClientSocket.Host := ip1Edit.text; //IP des Zielrechners
      try
 ClientSocket.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket.active := true; //Aufbau der Verbindung
      end;
      end;
if ip2Edit.text<>''
 then begin
 ClientSocket1.Port := 23; //Festlegung des Ports
 ClientSocket1.Host := ip2Edit.Text; //IP der Verbindung
      try
 ClientSocket1.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket1.active := true; //Aufbau der Verbindung
      end;
      end;
if ip3Edit.text<>''
 then begin
 ClientSocket2.Port := 23; //Festlegung des Ports
 ClientSocket2.Host := ip3Edit.text; //IP des Zielrechners
      try
 ClientSocket2.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket2.active := true; //Aufbau der Verbindung
      end;
      end;
if ip4Edit.text<>''
 then begin
 ClientSocket3.Port := 23; //Festlegung des Ports
 ClientSocket3.Host := ip4Edit.text; //IP des Zielrechners
      try
 ClientSocket3.active := true; //Aufbau der Verbindung ?
      finally
 ClientSocket3.active := true; //Aufbau der Verbindung
      end;
      end;
   x:=1;
   Form1.StatusBar1.Panels[4].Text:= 'Aktualisierung läuft';
  end;
 if x=2 then
   Form1.StatusBar1.Panels[4].Text:= '';
end;

procedure TForm1.ClientSocket3Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
 MemoFail.Lines.Add(ip4Edit.text+' Antw. nicht');
end;

procedure TForm1.ClientSocket2Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
 MemoFail.Lines.Add(ip3Edit.text+' Antw. nicht');
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
 MemoFail.Lines.Add(ip2Edit.text+' Antw. nicht');
end;

procedure TForm1.ClientSocketError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
 MemoFail.Lines.Add(ip1Edit.text+' Antw. nicht');
end;

end.
bin neu, also nicht mit Verbesserungsvorschlägen bombardieren ^^
Denkt dran: Das Leben ist wie eine Hühnerleiter:
VON OBEN BIS UNTEN BESCHISSEN
Es ist wie ein Schnitzel:
VON BEIDEN SEITEN BEKLOBBT
  Mit Zitat antworten Zitat