首頁  >  文章  >  後端開發  >  javascript - 使用 php socket 函數寫通訊程式碼時遇到的問題? ?

javascript - 使用 php socket 函數寫通訊程式碼時遇到的問題? ?

WBOY
WBOY原創
2016-09-21 14:12:56868瀏覽

下面socket代碼服務端PHP socket能夠接受到來自客戶端PHP socket 的訊息,但是無法發送訊息到客戶端PHP socket,報錯:由於套接字沒有連接並且(當使用一個sendto 呼叫發送數據報套接字時)沒有提供地址,發送或接收資料的請求沒有被接受。 網路上查閱了些資料,不明所以,求大神解救....

<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>

已解決,貼出解決網路上找到的答案哈:http://www.cnblogs.com/wolf-s...

回覆內容:

下面socket代碼服務端PHP socket能夠接受到來自客戶端PHP socket 的訊息,但是無法發送訊息到客戶端PHP socket,報錯:由於套接字沒有連接並且(當使用一個sendto 呼叫發送數據報套接字時)沒有提供地址,發送或接收資料的請求沒有被接受。 網路上查閱了些資料,不明所以,求大神解救....

<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>

已解決,貼出解決網路上找到的答案哈:http://www.cnblogs.com/wolf-s...

服務端有一行寫錯了,應寫為

socket_write($client, $output , strlen($output));

這是我目測的,沒調試,不知道還有沒有其它問題

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn