java和php在同一臺機器上?
PHP到Java
http://php-java-bridge.sourceforge.net/pjb/
所以,我有一個非常基本的測試設置,看看我是否可以從一個PHP網頁將數據發送到同一臺服務器上運行的Java應用程序。
的Java應用程序是死的簡單,它只是在其上偵聽數據
import java.io.*;
import java.net.*;
class TCPServer
{
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
connectionSocket.close();
}
}
}
方法1
$host = "tcp://localhost";
$port = 6789;
$data = 'test' . PHP_EOL;
$errstr = '';
$errno = '';
if (($fp = fsockopen($host, $port, $errno, $errstr, 3)) === FALSE)
echo "$errstr ($errno)";
else {
print 'SUCCESS!<br />';
fwrite($fp, $data);
while (! feof($fp)) {
echo fgets($fp, 4096);
}
fclose($fp);
}
方法2
$host = "localhost";
$port = 6789;
$data = 'test';
if (($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === FALSE)
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error());
else
{
echo "Attempting to connect to '$host' on port '$port'...<br>";
if (($result = socket_connect($socket, $host, $port)) === FALSE)
echo "socket_connect() failed. Reason: ($result) " . socket_strerror(socket_last_error($socket));
else {
echo "Sending data...<br>";
socket_write($socket, $data, strlen($data));
echo "OK<br>";
echo "Reading response:<br>";
while ($out = socket_read($socket, 2048)) {
echo $out;
}
}
socket_close($socket);
}
TCP套接字編輯
JAVA到PHP
有很多方法可以做到這一點 我想用來從PHP
if(isset($_GET["user"]) && isset($_GET["pass"])){
echo system("java myjavaprogram . " .$_GET["user"])
// Then args will be an array containing the strings $_GET["user"]
}
和Java程序調用操作命令的任何系統接收命令,併發射行動
public static void main(String [] args) {
String user = args[0]; // user
// etc.. etc
}
您還可以使用捲曲parea使從PHP
的任何請求
if(isset($_GET["user"]) && isset($_GET["pass"])){
$ch = curl_init("http://127.0.0.1:8080/servlet");
$fp = fopen("test.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
我希望我幫助
你能解釋一下其中的是java和地方在於PHP運行?在同一臺服務器上?爲什麼你想要一個Java前端應用程序?當兩件事情在同一臺機器上運行時,他們有更多的溝通方式。 – zapl
php和java在同一臺機器上運行 – Larry
修復語法,拼寫等 – Prune