使用 php socket 函数写通信代码时遇到的问题??

下面socket代码 服务端PHP socket能够接受到来自客户端PHP socket 的消息,但是无法发送消息到客户端 PHP socket,报错:由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 网上查阅了些资料,不明所以,求大神解救....

服务端 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);

已解决,贴出解决网上找到的答案哈: http://www.cnblogs.com/wolf-s...

阅读 2.7k
1 个回答

服务端有一行写错了,应写为

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

这是我目测的,没调试,不知道还有没有其它问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题