PHP Socket-Paket empfangen

  • Themenstarter Themenstarter ByeBye 154279
  • Beginndatum Beginndatum
B

ByeBye 154279

Hallo,


habe ein Problem mit dem Empfangen von Paketen, die ich via PHP sende.
Habe einen Socketserver erstellt, der auf einen bestimmten Port lauscht.
Mein Paket, welches ich via PHP sende, kommt an meinem PC an ( wireshark )

Jedoch erhalte ich keine Meldung vom meinem JAVA Server.

Muss ich hierbei etwas besonderes beachten?

Geht es überhaupt?

Vielen Dank

bo
 
eigentlich solte deinem server egal sein was an die andere seite passiert und welcher rechner (handy microkontroller da steht). was aber du auf jeden fall prüfen kanst das ist deine Firewalleinstelungen- wenn server client local sind kannst du versuchen Firewall ganz auszushalten(nachdem du jede verbindung nach ausen trenst) und shaust mal was dann passiert. wenn nichts werde ich auf deine seite ehe PHP seite überprüffen... da die java seite sollte eigentlich ziemlich einfach sein.:)
 
Hey,


habe beides getestet: FW komplett aus und Port bei Windows geöffnet.
Zumal das Paket ja bei Wireshark zu sehen ist.

Hier einer meiner vielen Versuche :P

Java:
		try {
			localaddr = InetAddress.getLocalHost();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}

		try {
			serverSocket = new ServerSocket(port, 0, localaddr);
		} catch (IOException e) {
			System.out.println("Could not listen on port: " + port);
			System.exit(-1);
		}

		System.out.println(serverSocket.getLocalPort() + " "
				+ serverSocket.getInetAddress().getHostAddress());

		try {
			clientSocket = serverSocket.accept();
		} catch (IOException e) {
			System.out.println("Accept failed: " + port);
			System.exit(-1);
		}
		
		BufferedReader in = new BufferedReader(new InputStreamReader(
				clientSocket.getInputStream()));
		String inputLine = null;

		while ((inputLine = in.readLine()) != null) {
			System.out.println(inputLine);
		}

Hat jemand noch eine Idee?


bo
 
Hi,

versuchst Du, das PHP Paket vom selben Rechner auszusenden ?

Wenn nein, musst Du Dich an die -> public IP <- binden. Du klemmst im oberen Teil Deinen Listener auf localhost. Selbst wenn Du mit PHP dann an die public IP vom selben Rechner sendest, wird im Javaprozess nix ankommen (weil der auf 127.0.0.1 horcht).

just my 2 cents ;-)

Grüße
gore
 
Hey,


also das Paket kommt an meine 192´er Adresse an ( wireshark ).
Und der Server gibt mir diese auch aus.

Werde mal testen ein anderes Netzwerkinterface zu testen.

Danke
 
Hi,

mit
Java:
localaddr = InetAddress.getLocalHost();

bekommst du afaik ein 127.'er interface (kann mich aber täuschen)

in dem Zusammenhang ist mir aber gerade noch eingefallen, dass Du eine Policy mitgeben musst, die Deinem Prozess erlaubt, Netzwerkverkehr zu haben.

Diese app.policy sieht so aus :

Code:
grant {
     permission java.security.AllPermission;
};

Und anziehen tust Du die mit folgender java-start option :

Code:
java -Djava.security.policy=/path/to/app.policy  ...

Hoffe, es hilft ;-)

Grüße
gore
 
Heyyyyyyy,


habe den Fehler gefunden.

Es lag nicht an der policy ( kann auch ohne policy starten).

Es lag daran, dass ich udp Pakete sende!
Und der Java Socket auf TCP Pakete wartet.

Mit DatagrammSocket klappt es wunderbar :)

Danke dir :)

bo
 
Zurück