欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP+SOCKET 由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受

程序员文章站 2022-05-27 16:45:12
...
求助:PHP+SOCKET 由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。
本帖最后由 subendong 于 2011-06-03 16:39:41 编辑 由于之前连续发布了两篇帖子,无一有回,所以先向版主申请删除之前两篇类似的帖子,不然留着无用。就像垃圾一样。
然后希望大神,能根据我提供的代码,稍作修改,使得代码能够正确运行,谢谢!

具体如下:
Warning: socket_read(): unable to read from socket [0]: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
我建了两个文件xx.php是在服务器端执行的文件。x.php是在客户端执行的文件。
xx.php

// 设置一些基本的变量 
global $lat,$lnt;
$host = "192.168.1.110";
$port = 8080;
// 设置超时时间
set_time_limit(0);
// 创建一个Socket
$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);

//绑定Socket到端口
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
$ret = socket_listen($socket, 5);
if($ret)
{
while (true)
{
$spawn = socket_accept($socket);
if(!$spawn) break;
$output = "congratulations,you have connected server:" . $host . "!";
socket_write($spawn, $output, strlen ($output)) or die("error\n");
$input = socket_read($socket, 100000);
socket_write($spawn, $input, strlen ($input)) or die("error\n");
socket_close($spawn);
}
}
socket_close();
?>




x.php

// 设置一些基本的变量 
$host = "192.168.1.110";
$port = 8080;
// 设置超时时间
set_time_limit(0);
// 创建一个Socket
$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
if(!$socket) echo "can't creat socket";
//绑定Socket到端口

$result = socket_connect($socket,$host,$port);
if($result)
{
$output="abc";
socket_write($socket, $output, strlen ($output));
$input = socket_read($socket, 1024);
}
echo $input;
?>



在服务器先打开xx.php,然后再在客户端打开x.php,结果服务器端提示以上错误信息,就是socket_read的错误。
哪位大神帮我看下,找了好多资料都没解决。

------解决方案--------------------
我给你个可用的测试例
// Client 
// 设置错误处理
error_reporting (E_ALL);
// 设置处理时间
set_time_limit (0);

$ip = ""; // IP 地址
$port = 1000; // 端口号

$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); // 创建一个SOCKET
if ($socket)
echo "socket_create() 成功!
\n";
else
echo "socket_create() 失败:".socket_strerror ($socket)."
\n";

$conn = socket_connect ($socket, $ip, $port); // 建立SOCKET的连接
PHP+SOCKET  由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • PHP+SOCKET  由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受
  • 专题推荐

    作者信息
    PHP+SOCKET  由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受

    认证0级讲师

    推荐视频教程
  • PHP+SOCKET  由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受javascript初级视频教程
  • PHP+SOCKET  由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受jquery 基础视频教程
  • 视频教程分类