Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Socketfehler 10061 tritt nur in bestimmten Fällen auf? oO (https://www.delphipraxis.net/121429-socketfehler-10061-tritt-nur-bestimmten-faellen-auf-oo.html)

Svenkan 27. Sep 2008 10:48


Socketfehler 10061 tritt nur in bestimmten Fällen auf? oO
 
Hallo Leute!
Ein Anwender berichtet mir, dass er bei einem Upload den Socketfehler 10061 ausgegeben bekommt. Das seltsame an der Sache ist nur, dass dieser Fehler nur über einen bestimmten Menüpunkt auftritt, in dem folgendes ausgeführt wird:

Delphi-Quellcode:
  if userdef_upload_sch then
    TimerUpload.OnTimer(TimerUpload);
Läuft der Timer selbst durch, kommt es nicht zu dem genannten Problem. Das finde ich gerade mehr als nur merkwürdig. Habt ihr eine Ahnung woran das liegen könnte?


Hier nochmal der Upload-Timer (jetzt nicht über die Einrückungen und sowas aufregen^^ ich bin noch dabei das etwas zu optimieren, aber hier müsst ihr leider mit dieser Art vorlieb nehmen *g*)

Delphi-Quellcode:
procedure THauptform.TimerUploadTimer(Sender: TObject);
var Ini: TIniFile;
    morgen_m,http_url,today,tomorrow,proxy_type,proxy_host,proxy_port,proxy_user,proxy_pass,dirname,password,url,username,file1,file2,file3,file4,file5: String;
    proxy,passiv,lplan: Boolean;
    dnr,port: Integer;
begin
Application.ProcessMessages;

  TimerReload.OnTimer(TimerReload);

dnr:=DayOfWeek(heute_neu);

  if dnr=1 then begin     //sonntag
   today:=DatetoStr(heute_neu+1);
   tomorrow:=DatetoStr(heute_neu+2);
  end
  else if dnr=2 then begin
   today:=DatetoStr(heute_neu);
   tomorrow:=DatetoStr(heute_neu+1);
  end
  else if dnr=3 then begin
   today:=DatetoStr(heute_neu);
   tomorrow:=DatetoStr(heute_neu+1);
  end
  else if dnr=4 then begin
   today:=DatetoStr(heute_neu);
   tomorrow:=DatetoStr(heute_neu+1);
  end
  else if dnr=5 then begin
   today:=DatetoStr(heute_neu);
   tomorrow:=DatetoStr(heute_neu+1);
  end
  else if dnr=6 then begin
   today:=DatetoStr(heute_neu);
   tomorrow:=DatetoStr(heute_neu+3);
  end
  else if dnr=7 then begin
   today:=DatetoStr(heute_neu+2);
   tomorrow:=DatetoStr(heute_neu+3);
  end;

 try
    Ini:=TIniFile.Create(prgmpath+'conf.ini');
    username:=Ini.ReadString('FTP-Daten','Username','');
    password:=Ini.ReadString('FTP-Daten','Password','');
    url:=Ini.ReadString('FTP-Daten','URL','');
    dirname:=Ini.ReadString('FTP-Daten','Ordner','');
    port:=Ini.ReadInteger('FTP-Daten','Port',21);
    passiv:=Ini.ReadBool('FPT-Daten','Passivmode',TRUE);
    proxy:=Ini.ReadBool('Proxy','Aktivieren',FALSE);
    proxy_host:=Ini.ReadString('Proxy','Host','');
    proxy_port:=Ini.ReadString('Proxy','Port','');
    proxy_user:=Ini.ReadString('Proxy','Username','');
    proxy_pass:=Ini.ReadString('Proxy','Passwort','');
    proxy_type:=Ini.ReadString('Proxy','Typ','');
    http_url:=Ini.ReadString('HTML-Plan (Schüler)','URL','');
    lplan:=Ini.ReadBool('Grundeinstellungen','Lehrerplan hochladen',true);
    morgen_m:=Ini.ReadString('Zeiteinstellungen','Datum morgen',tomorrow);
    if StrToDate(morgen_m)<StrToDate(tomorrow) then
      morgen_m:=tomorrow
    else
      tomorrow:=morgen_m;
  finally
    Ini.Free;
  end;

  IdFTP1.Username := username;
  IdFTP1.Password := password;
  IdFTP1.Host := url;
  IdFTP1.Port:=port;
  IdFTP1.Passive:=passiv;
  IdFTP1.Connect;

  IdFTP1.ChangeDir(dirname);

 if proxy then begin
  IdFTP1.ProxySettings.Host:=Proxy_Host;
  IdFTP1.ProxySettings.Port:=StrToInt(Proxy_Port);
  IdFTP1.ProxySettings.Username:=Proxy_User;
  IdFTP1.ProxySettings.Password:=Proxy_Pass;
   if Proxy_Type='fpcmNone' then
    IdFTP1.ProxySettings.ProxyType:=fpcmNone
   else if Proxy_Type='fpcmOpen' then
    IdFTP1.ProxySettings.ProxyType:=fpcmOpen
   else if Proxy_Type='fpcmSite' then
    IdFTP1.ProxySettings.ProxyType:=fpcmSite
   else if Proxy_Type='fpcmTransparent' then
    IdFTP1.ProxySettings.ProxyType:=fpcmTransparent
   else if Proxy_Type='fpcmUserSite' then
    IdFTP1.ProxySettings.ProxyType:=fpcmUserSite
   else if Proxy_Type='fpcmUserPass' then
    IdFTP1.ProxySettings.ProxyType:=fpcmUserPass;
 end
 else begin
  IdFTP1.ProxySettings.Host:='';
  IdFTP1.ProxySettings.Port:=0;
  IdFTP1.ProxySettings.Username:='';
  IdFTP1.ProxySettings.Password:='';
  IdFTP1.ProxySettings.ProxyType:=fpcmNone;
 end;

 if tage>2 then begin
  file1:=prgmpath+'\pl_sch\'+prefix_sch+'Mo.htm';
  file2:=prgmpath+'\pl_sch\'+prefix_sch+'Di.htm';
  file3:=prgmpath+'\pl_sch\'+prefix_sch+'Mi.htm';
  file4:=prgmpath+'\pl_sch\'+prefix_sch+'Do.htm';
  file5:=prgmpath+'\pl_sch\'+prefix_sch+'Fr.htm';

  IdFTP1.Put(file1, ExtractFileName(file1));
  IdFTP1.Put(file2, ExtractFileName(file2));
  IdFTP1.Put(file3, ExtractFileName(file3));
  IdFTP1.Put(file4, ExtractFileName(file4));
  IdFTP1.Put(file5, ExtractFileName(file5));
 end
 else begin
  file1:=prgmpath+'\pl_sch\'+prefix_sch+'heute.htm';
  file2:=prgmpath+'\pl_sch\'+prefix_sch+'morgen.htm';

  IdFTP1.Put(file1, ExtractFileName(file1));
  IdFTP1.Put(file2, ExtractFileName(file2));
 end;

  IdFTP1.Quit;

  if (autom_mon_exp) AND ((monitor_upload*60)=uploadtime) AND NOT (lplan) then
   TimerMonitorFTP.OnTimer(TimerMonitorFTP);
end;

Svenkan 28. Sep 2008 01:05

Re: Socketfehler 10061 tritt nur in bestimmten Fällen auf? o
 
OK, ihm ist grad aufgefallen, dass er keine Login-Daten eingetragen hat. :D


Naja, egal. Damit hat sich das Problem erledigt. ^^

Die Muhkuh 28. Sep 2008 07:12

Re: Socketfehler 10061 tritt nur in bestimmten Fällen auf? o
 
Hi,

auch wenn das Problem als erledigt scheint, würde ich im Programm genau das Abfangen! Wenn keine Daten hinterlegt sind, zeigst Du dem Benutzer eine schicke Meldung, das dem so ist und rufst am Besten danach den Dialog auf, in dem er die Daten eingeben kann. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 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