dopo aver risolto il problema del networking, nell'apposita sezione grazie al mitico Thece, anche su suo consiglio chiedo chiarimenti su un problema.
Lo scenario è:
A) macchinario aziendale sul cui PC è installato Windows10 → IP = 192.168.1.19
b) server aziendale, con Ubuntu 16.04 → IP = 192.168.1.106
Il macchinario tramite la porta 8888 invia/riceve messaggi col protocollo TCP/IP.
Sul server faccio girare questo script PHP per ricevere il tracciato dal macchinario:
Codice: Seleziona tutto
<?php
error_reporting(E_ALL);
/* Si indica allo script di non uscire mentre attende una connessione */
set_time_limit(0);
/* Abilita lo scarico dell'output così si è in grado di vedere cosa passa
* non appena arrivano i dati al server. */
ob_implicit_flush();
$dt = date('d/m/Y H:i:s');
$address = '192.168.1.106';
$port = 8888;
$timeout = 20;
$cmp = array();
// Create a TCP Stream socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($sock === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("socket_create [$errorcode] $errormsg");
}
// after 20 seconds socket will destroy the connection. Also you can set and uses
if ( !socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array( "sec"=>$timeout, "usec"=>0 ) ) ) {
echo socket_strerror(socket_last_error($sock));
exit;
}
// Lega il socket alla porta $port sul server $host
$result = socket_bind($sock, $address, $port) or die("Fallito inizializzazione porta su socket. Datetime: ". $dt);
// Inizio ascolto sulla connessione
$result = socket_listen($sock, 3) or die("Start ascolto socket fallito. Datetime: ". $dt);
// Attende l'arrivo di una connessione client
$client = socket_accept($sock) or die("Inizializzazione connessione con client fallita. Datetime: ". $dt);
// Legge Client input
$input = socket_read($client, 2048) or die("Errore Non riesco a leggere l'input. Datetime: ". $dt);
$cmp[] = $input;
socket_close($client);
socket_close($sock);
Lo script termina con: "Inizializzazione connessione con client fallita. Datetime: ..."
poiché socket_accept() non riceve nulla... nonostante dal macchinario abbiamo cliccato il tasto "INVIA TRACCIATO"... Mi potreste aiutare a capire il problema?
Grazie in anticipo!