Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Socket Error 10054 (https://www.delphipraxis.net/167229-socket-error-10054-a.html)

kuba 19. Mär 2012 12:31

Socket Error 10054
 
Hallo,

mein Programm führt ein paar PHP-Scripte aus mit denen Werte in eine MySQL-Datenbank geschrieben werden. Gelegentlich kommt es vor, daß die Kommunikation nicht funktioniert, es erscheint dann: Socket Error 10054

Hat jemand eine Ahnung wodurch der Fehler entstehen kann ??

Auszug eines Script:
Delphi-Quellcode:
<?php

$PCIDMD5 = htmlspecialchars($_POST['GetPCIDMD5']);
$set_time = htmlspecialchars($_POST['Set_Time']);
$MeineIP = htmlspecialchars($_POST['Meine_IP']);
$EMAIL = htmlspecialchars($_POST['E_MAIL']);

include("config.php");

// db connection
$db = mysql_connect($db_host, $db_user, $db_pass);
if (!$db)
{
    die('Could not connect: ' . mysql_error());
}
else
{
   mysql_select_db($db_name);
   $anfrage = "INSERT kiosk_ip SET IP='$MeineIP', MAC='$PCIDMD5', Time='$set_time', E_Mail='$EMAIL'";
   $sql = mysql_query($anfrage);
}
   echo $EMAIL;
   //$row = mysql_fetch_row($sql);
   //echo $row[0];
   
mysql_close($db);

?>

KUBA

mkinzler 19. Mär 2012 16:55

AW: Socket Error 10054
 
Wie groß ist die Datenmenge?
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

kuba 20. Mär 2012 09:01

AW: Socket Error 10054
 
Das sieht in der MySQL Datenbank so aus:

878 195.37.252.58 4347D5F07EE54ED062EC57F0B956A19E 14.03.2012 13:09:03 kioskmodus@web.de


und im SourceCode so:

Delphi-Quellcode:
procedure Aktivierung;
var
  Host      : String;
  data      : TStringList;
  Response  : String;
  EMAIL     : string;
begin
  EMAIL := InputBox('subscribe to newsletter please e-mail address', 'mail: ', '');
  data := TStringList.Create;
  try
    data.Values['GetPCIDMD5'] := GetPCIDMD5;
    data.Values['Set_Time'] := DateToStr(Now())+' '+TimeToStr(Now());
    data.Values['Meine_IP'] := MeineIP;
    data.Values['E_MAIL'] := EMAIL;
    try
      Response := IdHTTP.Post(Manufacturer_URL+'/data/freeware_eid.php', data);
    except
      on E: Exception do
      ShowMessage('ERROR: ' + E.Message);
    end;
  finally
    data.Free;
  end;
  if Response = '' then showmessage('activation unsuccessful !');
 
  //hier kommt noch was zur Aktivierung des Programm ...
  //


end;
KUBA

kuba 22. Mär 2012 11:17

AW: Socket Error 10054
 
Interessant finde ich dann noch, daß mein Programm bei allen PC's in der Netzwerkumgebung fehlschlägt. Also einen Fehler im Programm halte ich für unwahrscheinlich. Trotzdem läßt mich das nicht los, in der Netzwerkumgebung funktioniert ja sonst alles (OK ich war noch nicht selbst dort), zumindest funktionieren in dem Netzwerk PHP/MySQL basierende Webseiten. Mein Programm macht doch nichts anderes. Ein PHP-Script aufrufen, Daten übergeben und absenden. Das Script schreibt übergebene Daten in die MySQL-Datenbank.

Hat keiner eine Idee, welche Ursache für "Socket Error 10054" in Frage kommen könnte ?

Ich habe langsam den Verdacht, daß dort irgendein Router spinnt und die Datenübertragung stört. Es ist jedenfalls schon der zweite Fall der mir bekannt geworden ist.

KUBA

lowmax_5 22. Mär 2012 11:56

AW: Socket Error 10054
 
Hallo,

die Ursache liegt mit Sicherheit an einer Verbindungsunterbrechung. (Ist jedenfalls ähnlich wie bei Firebird).
Teste doch mal einen Dauerping (ping IP -t) auf den Server vom Client aus. Dann wirst Du Timeouts finden, die mit dem Problem im Zusammenhang stehen...

lowmax

TRomano 22. Mär 2012 13:38

AW: Socket Error 10054
 
Hallo zusammen,

den gleichen Fehler hatte ich schon beim Installieren des MySQl-Server (als lokaler Admin auf meinem Notebook) und es sieht wohl so aus, als wenn er den Port 3306 nicht öffnen kann.
Der Installer sagt mir dann höflicherweise, dass eine "Personal Firewall" dieses verhindert ... ist aber explizit von mir abgeschaltet worden !

mjustin 22. Mär 2012 16:01

AW: Socket Error 10054
 
Zitat:

Zitat von kuba (Beitrag 1157349)
Socket Error 10054

Hat jemand eine Ahnung wodurch der Fehler entstehen kann ??

Dieser Fehler besagt, dass die Gegenseite die Verbindung getrennt hat. Das kann ein Absturz des (MySQL-) Servers sein. Wird der MySQL Prozess bei Ausfall automatisch neu gestartet?

Es kann auch ein Timeout den Fehler auslösen, wenn der Server den Client nicht erreichen kann.

http://support.ipswitch.com/kb/WSK-19980714-EM01.htm


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