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.
Codice 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";
?>
vi allego anche il codice c nel caso possa aiutarvi
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);
}