Salve,
Sto cercando di sviluppare una pagina php che comunica con programma scritto in c che gira su una macchina diversa dal server su cui si trova la pagina php. Su localhost sono riuscito a far andare tutto senza problemi, ma quando ho spostato la pagina sul web sono iniziati i problemi. In pratica la pagina inizia il caricamento e dopo qualche minuti mi chiede di scaricare lo script php.
vi allego anche il codice c nel caso possa aiutarviCodice PHP:<?php
$host=//mio ip
$port=10000;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
echo "Tentativo di connessione a '$host' sulla porta '$port'...";
$result = socket_connect($socket, $host, $port);
if ($result < 0) {
echo "socket_connect() fallito.\nMotivo: ($result) " . socket_strerror($result) . "\n";
} else {
echo "OK.\n";
}
$in = "aumentapotenza";
echo "Invio...";
socket_write($socket, $in, strlen ($in)) or die("Could not write output\n");
echo "Chiusura del socket...";
socket_close($socket);
echo "OK.\n\n";
?>
codice:#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main(int argc, char *argv[]) { int id; int SPORT = 10000; // Porta TCP Server int server, client; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int client_len = sizeof(client_addr), byte; char buffer[1000]; // Struttura con le informazioni sul server per effettuare il BIND server_addr.sin_family = AF_INET; server_addr.sin_port = htons((u_short) SPORT); //server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_addr.s_addr = inet_addr("mio ip");; server = socket (AF_INET, SOCK_STREAM, 0); if (server < 0) { printf ("\n\n"); perror (buffer); printf ("\n\n"); } // Il BIND associa al socket una porta bind (server,(struct sockaddr*)&server_addr,sizeof(server_addr)); listen(server,1); while(1) { // L'applicazione rimane in attesa di connessione client = accept (server,(struct sockaddr*) &client_addr, &client_len); if (client >= 0) { byte = recv(client,buffer,200,0); buffer[byte] = '\0'; printf("\n\nClient: %s \n\n\n",buffer); } else { perror (buffer); } } // Chisura socket close (client); close (server); }

Rispondi quotando
il tuo lavora alla 10000 .... se ti connetti alla 80 ti connetterai probabilmente ad un webserver locale 