udp接收java can';t在php中运行


udp receive java can't run in php

我是java中UDP编程的新手。我有一本书,里面包含了java中发送方和接收方的代码。当我制作jar并从cmd运行时,代码运行得很好。

问题是,当我被要求制作一个php来运行.jar时,接收器无法接收到任何东西。。接收器只有在使用cmd时才能工作。发送器很好,因为它已经可以使用cmd或php发送

接收器代码:

package packetreceiver;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Packetreceiver {
public static void main(String[] args) {
int z = 0;
while (z<5){
try
{
  DatagramSocket socket = new DatagramSocket(2000);
  DatagramPacket packet = new DatagramPacket(new byte[256], 256);
  socket.receive(packet);
  System.out.println("Binding to local port 2000");
  System.out.println("Bound to local port " + socket.getLocalPort());
  System.out.println("Packet received!");
  InetAddress remote_addr = packet.getAddress();
  System.out.println("Sent by : " + remote_addr.getHostAddress());
  System.out.println("Sent from: " + packet.getPort());

  ByteArrayInputStream bin = new ByteArrayInputStream(packet.getData());
  for (int i = 0; i < packet.getLength(); i++)
  {
    int data = bin.read();
    if (data == -1) {
      break;
    }
    System.out.print((char)data);
  }
  socket.close();
  System.out.println();
}
catch (IOException ioe)
{
  System.err.println("Error - " + ioe);
}
z++;
}
}
} 

php:

<?php
exec("java -Xmx1g -jar packetreceiver.jar",$output);
foreach($output as $value) {
  echo $value;
  echo "</br>";
};
?>

请帮帮我,谢谢

您的问题在PHP方面。您的exec失败,但由于您不处理错误,因此您不知道这一点。PHP在这里找东西有问题,所以你可以尝试使用路径。例如,以下是一些理论Test.class文件的外观:

exec("'"c:/Program Files/Java/jdk1.7.0_25/bin/java.exe'" -cp c:/php Test", $output, $ret);
if ( $ret == 0 )
{
    echo "operation failed'n";
    exit(1);
}
foreach($output as $line)
{
   echo $line;
}