Witam mam pewien problem. Napisałem program w c++, który ma na zadanie komunikować się z serwerem php.
prosty program napisany w c++:
int connect(){// ta funkcja wykonuje się co 10s
HINTERNET hNet = 0;
HINTERNET hConnect = 0;
int size;
int ret;
char *head = "Accept: */*\r\n\r\n";
char recv[2048] = {0};
char *buffPtr = NULL;
int bytesAvailable = 0;
strcpy(sendlink, "www.domena.pl/plik.php?api=client");
hNet = InternetOpen("NO_NAME", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0);
hConnect = InternetOpenUrl ( hNet, sendlink, NULL, 0, INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD, 0);
InternetQueryDataAvailable(hConnect, (LPDWORD)&bytesAvailable, 0, 0);
do{
if (!InternetReadFile (hConnect, recv, 2048, (LPDWORD)&size) ){
InternetCloseHandle(hNet);
return -2;
}
if (size == 0){// odpowiedz tu odczytuje zwracana wartosc w tym przypadku slowo "good"
break;
}
}
while (1);
}
kod php, który odbiera połączenie:
<?php
$apiCommands = array( "client" );
$api = $_GET['api'];
if (in_array($api, $apiCommands) == true)
return "good";
?>
Program jest uruchomiony na serwerze dedykowanym i połączenie wykonuje się w pętli co 10s. Problem polega na tym, że po około jednym dniu działania server php nie odczytuje danych od programu - tak jakby php blokowało połączenie. Dlaczego tak się dzieje? php ma jakiś limit połączeń? Dodam, że po utracie połączenia z serwerem php wystarczy wyłączyć i włączyć program i działa dalej. Ma ktoś pomysły co jest nie tak?