У меня наконец-то работает сервер Python, и я отвечаю на несколько команд с помощью выходных данных, однако сейчас у меня проблемы с получением полного вывода PHP. Я пробовал команды, такие как fgets, fread, единственная команда, которая, кажется, работает, это "fgets".
Однако, это только получение данных в строке, затем я создал оператор while, показанный ниже:
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
Однако кажется, что сервер Python не отправляет Feof в конце вывода, поэтому страница php отключается и ничего не отображает. Как я уже говорил выше, просто запустив echo fgets ($ handle), все в порядке, и выведите одну строку, снова запустив команду под ни одним из них, не отобразится следующая строка
Я приложил важную часть моего скрипта Python ниже:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", port))
s.listen(5)
print "OK."
print " Listening on port:", port
import subprocess
while 1:
con, addr = s.accept()
while True:
datagram = con.recv(1024)
if not datagram:
break
print "Rx Cmd:", datagram
print "Launch:", datagram
process = subprocess.Popen(datagram+" &", shell=True, stdout=subprocess.PIPE)
stdout, stderr = process.communicate()
con.send(stdout)
con.close()
s.close()
Я также приложил полный PHP-скрипт:
<?php
$handle = fsockopen("tcp://xxx.xxx.xxx.xxx",12345);
fwrite($handle,"ls");
echo fgets($handle);
fclose($handle);
?>
Спасибо,
Ashley