Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

TCP

Chcesz nauczyć się projektowania funkcjonalnych i dostępnych dla wszystkich serwisów, poznać standardy tworzenia stron WWW? A może masz w tej dziedzinie spore doświadczenie, ktorym chcesz się podzielić z innymi?

TCP

Post 21.07.2018, 08:32:59

Witam
Wszystko co poniżej działa ale tylko na lokalu, niestety na serwerze hostingowym już niestety nie.
Chodzi mi o odbiór paczki danych (kilkanaście bajtów) na zewnętrznym serwerze hostingowym.

Urządzenie komunikuje się po TCP

Kod: Zaznacz cały
<?php
echo "OK";

/*************************************/
/********Socket Server*********************/
set_time_limit (0);
// Set the ip and port we will listen on
$address = '127.0.0.1';
$port = 3000;
// Create a TCP Stream socket
$sock = socket_create(AF_INET, SOCK_STREAM, 0); // 0 for  SQL_TCP
// Bind the socket to an address/port
socket_bind($sock, 0, $port) or die('Could not bind to address');  //0 for localhost
// Start listening for connections
socket_listen($sock);
//loop and listen
while (true) {
/* Accept incoming  requests and handle them as child processes */
$client =  socket_accept($sock);
// Read the input  from the client ? 1024000 bytes
$input =  socket_read($client, 1024000);
// Strip all white  spaces from input
echo $input;
    flush();
    ob_flush();
    sleep(1);

}
socket_close($sock);
?>



Te flusze to tylko po to żebym mógł z przeglądarki odpalać

Client w node (emulacja urządzenia)
Kod: Zaznacz cały
var net = require('net');
function loop(){
var client = new net.Socket();
client.connect(3000, 'xxx', function() {
   console.log('Connected');
   client.write('DANE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
});

client.on('data', function(data) {
   console.log('ODEBRANO: ' + data);
   client.destroy();
});

client.on('close', function() {
   console.log('Connection closed');
});
}
   setInterval(loop,3000);



Nie wiem czy porty są po blokowane na serwerze i nie ma do nich dostępu czy co?
Czy można ten temat jakoś podejść jakoś inaczej np po zwykłym www port 80 tak żeby serwer tylko odebrał paczkę mimo że brak poprawnego nagłówka i np zapisał do pliku.
sasiadstar
Posty: 135
Dołączył(a): 26.08.2016

Powrót do Standardy sieciowe


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 52886 zarejestrowanych użytkowników.
Najnowszy użytkownik: Panditji14


Nasi użytkownicy napisali:

  • 939109 wiadomości
  • w 248350 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)