0
我想學習在PHP中的Socket編程。我掌握了一個教程。我遵循教程中的精確代碼,但是我的代碼返回PHP的socket_listen()不工作
無法偵聽套接字[22]:無效的參數錯誤。
我認爲這是更多的服務器錯誤,而不是代碼本身的錯誤。我在Ubuntu中運行XAMPP Server。
#!/opt/lampp/bin/php
<?php
// set some variables
$host = "127.0.0.1";
$port = 80;
// don’t timeout!
set_time_limit(0);
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die('Could not create socketn');
// bind socket to port socket_connect($socket, '/var/run/mysqld/mysqld.sock')
$result = socket_connect($socket, $host, $port) or die('Could not bind to socketn');
// start listening for connections
$result = socket_listen($socket, 3) or die('Could not set up socket listenern');
// accept incoming connections
// spawn another socket to handle communication
$spawn = socket_accept($socket) or die('Could not accept incoming connectionn');
// read client input
//$input = socket_read($spawn, 1024) or die(「Could not read inputn」);
// clean up input string
$input = "red";//trim($input);
// reverse client input and send back
$output = strrev($input) . 'n';
socket_write($spawn, $output, strlen ($output)) or die('Could not write output n');
echo ($output);
// close sockets
socket_close($spawn);
socket_close($socket);
?>
腳本運行時沒有任何錯誤。你期望輸出 回聲($輸出); 要打印?該腳本返回給我沒有輸出,就像在無限循環中一樣。 – user2267386
@ user2267386該腳本正在等待某件東西連接到您要求它聽的端口。例如,如果你使用'telnet localhost 8080'(假設你已經連接到8080端口),你應該在telnet和輸出到控制檯中看到輸出「dern」(紅色顛倒+「n」)。然後腳本將退出。 –