Home > Article > Backend Development > javascript - Problems encountered when writing communication code using php socket function? ?
The following socket code server-side PHP socket can receive messages from the client-side PHP socket, but cannot send messages to the client-side PHP socket. An error message is reported: Because the socket is not connected and (when using a sendto call to send a datagram socket When) no address is provided, the request to send or receive data is not accepted. I checked some information online, but I don’t know why, please ask God for help....
<code>服务端 PHP socket: require_once 'socket_config.php'; $socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP); socket_bind($socket , $host , $port); socket_listen($socket , 3); $client = socket_accept($socket); $input = socket_read($client , $read_length , $read_type); echo '来自客户端 PHP 的消息: ' . $input; $output = strrev($input); socket_write($client, $output , strlen($output)); socket_close($client); socket_close($socket); 客户端 PHP Socket: require_once 'socket_config.php'; $socket_client = socket_create(AF_INET , SOCK_STREAM , SOL_TCP); $socket_con = socket_connect($socket_client , $host , $port); $message = 'hello boy'; // 发送给服务端 socket socket_write($socket_client , $message , strlen($message)) // 阅读来自服务端的响应 $result = socket_read($socket_client , $read_length , $read_type); echo '来自服务端 PHP 的消息: ' . $result; //socket_close($socket_client); </code>
Solved, posted the answer found online: http://www.cnblogs.com/wolf-s...
The following socket code server-side PHP socket can receive messages from the client-side PHP socket, but cannot send messages to the client-side PHP socket. An error message is reported: Because the socket is not connected and (when using a sendto call to send a datagram socket When) no address is provided, the request to send or receive data is not accepted. I checked some information on the Internet, but I don’t know why. Please ask God for help....
<code>服务端 PHP socket: require_once 'socket_config.php'; $socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP); socket_bind($socket , $host , $port); socket_listen($socket , 3); $client = socket_accept($socket); $input = socket_read($client , $read_length , $read_type); echo '来自客户端 PHP 的消息: ' . $input; $output = strrev($input); socket_write($client, $output , strlen($output)); socket_close($client); socket_close($socket); 客户端 PHP Socket: require_once 'socket_config.php'; $socket_client = socket_create(AF_INET , SOCK_STREAM , SOL_TCP); $socket_con = socket_connect($socket_client , $host , $port); $message = 'hello boy'; // 发送给服务端 socket socket_write($socket_client , $message , strlen($message)) // 阅读来自服务端的响应 $result = socket_read($socket_client , $read_length , $read_type); echo '来自服务端 PHP 的消息: ' . $result; //socket_close($socket_client); </code>
Solved, posted the answer found online: http://www.cnblogs.com/wolf-s...
There is a wrong line on the server side, it should be written as
socket_write($client, $output, strlen($output));
This is my visual inspection without debugging. I don’t know if there are any other problems