Ricevere UDP in PHP

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Ricevere UDP in PHP

Messaggio da iJim »

Salve a tutti,
ho creato uno script in php, sul mio server, in grado di ricevere un datagaramma UDP.
Ho creato una piccola applicazione in java ( da terminale ) che invia un datagramma udp al server, sul server ad attendere in datagramma c'è lo script in php.
Il problema è che il server non riceve niente!!!

Qualcuno ha mai provato una cosa del genere, e mi sa dare una "dritta" su come risolvere?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Fai partire lo script PHP prima di quello java?
Posta il codice.

Io con questo codice PHP: http://php.net/manual/en/function.socke ... ample-4716

e questo Java:

Codice: Seleziona tutto

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class SendUDP {
	public static void main(String[] args) throws Exception {

		byte[] buf = "Some message".getBytes();
		DatagramPacket data = new DatagramPacket(buf, buf.length, InetAddress.getByName("localhost"), 1223);

		DatagramSocket socket = new DatagramSocket();
		socket.send(data);
		socket.close();
	}
}
non ho problemi.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Grazie mille della risposta Zoff.
Purtroppo ho commentato tutto il mio codice e ho fatto copia/incolla del tuo codice.... ma lo script PHP non riceve nessun datagaramma.
Il problema a questo punto, non è nel codice, è possibile che il problema sia in qualche file di configurazione?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Si, certo.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

E come fai a farlo? Che output da?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Nello script php appena ricevo un datagramma UDP scrivo su un file e sul DB il messaggio che ricevo, inoltre faccio una echo.
Apro il browser e poi lancio la piccola applicazione in java che invia il datagramma.
Il file non viene creato, il DB non viene scritto, l'applicazione java non riceve niente e sul browser non appare niente!!!
E' come se il datagramma non arrivi mai!!!
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Ma stai provando in locale?
Se no, sei sicuro che il server permetta il traffico sulla porta che stai utilizzando?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Ho provato sia in locale che in remoto.
La porta che utilizzo è maggiore di 1500.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Mi sembra strano.
Ti allego i miei file.

Spostati col terminale nella cartella in cui li estrai e posta il risultato di:

Codice: Seleziona tutto

php receiveudp.php &
java SendUDP
Allegati
esempio.zip
(891 Byte) Scaricato 31 volte
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Grazie mille!
Purtroppo li potrò provare domani, e ti faccio sapere.
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Ho fatto il test e la risposta che ottengo è

Codice: Seleziona tutto

[1] 3388
se rilancio lo script i numeri aumentano
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Ma se il server è java funziona?

Ti allego un altro esempio tutto in java.
Come prima vai nella cartella col terminale e dai questo comando:

Codice: Seleziona tutto

java ReceiveUDP &; java SendUDP
Allegati
esempio.zip
(2.2 KiB) Scaricato 25 volte
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Ok tutto risolto, funziona tutto alla meraviglia, .... però se lancio lo script php da terminale!
Nel caso in cui carico lo script su un server remoto con ip statico, ( un esempio potrebbe essere, http://www.miosito.it/provaUDP.php che ha ip xx.xx.xx.xx ) se lancio la classe java anche da terminale per inviare un datagramma udp all'indirizzo http://www.miosito.it/provaUDP.php, sul server non arriva nulla!
Come me ne esco da questa situazione?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Suppongo che il problema sia nei permessi dell'utente di apache.
Ma sul server online se non è tuo privato non ci puoi fare nulla.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Quindi per poter ricevere un datagramma udp di soli pochi byte, ad un indirizzo statico, che devo fare?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Che tipo di controllo hai sul server a cui è associato l'indirizzo statico?
Se avessi pieno controllo ti basterebbe anche solo una riga con netcat.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

purtroppo il server online è uno dei tanti, tipo ( ar**ba, host***atis, ecc... ) e quindi non posso mettere le mani su httpd, o su php.ini o lanciare script !
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ricevere UDP in PHP

Messaggio da Zoff »

Allora direi che non puoi farlo.
Devi cercare un servizio che ti penetra di avviare servizi personalizzati.
Mi sembra, ma non ne sono certo, che ci siano dei piani Amazon AWS gratuiti che ti permettono questi genere di cose.

Ma perché ti serve per forza udp?
Non può fare una richiesta http?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
iJim
Prode Principiante
Messaggi: 218
Iscrizione: giovedì 4 febbraio 2010, 15:20
Desktop: ubuntu
Distribuzione: Ubuntu

Re: Ricevere UDP in PHP

Messaggio da iJim »

Grazie per la risposta!
Purtroppo mi serve UDP, per una piccola applicazione peer to peer.
Due host per poter scambiare dati, hanno il problema dei NAT e allora un modo per poter conoscere l'ip e la porta con cui raggiungere un host, è quello di avere un terzo host in grado di tener traccia degli ip e delle relative porte, un normalissimo server online in grado di ricere datagrammi udp in php sarebbe stato perfetto!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti