求助: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
<?php <br />// 设置一些基本的变量 <br />global $lat,$lnt;<br />$host = "192.168.1.110"; <br />$port = 8080; <br />// 设置超时时间 <br />set_time_limit(0); <br />// 创建一个Socket <br />$commonProtocol = getprotobyname("tcp");<br />$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);<br /><br />//绑定Socket到端口 <br />$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n"); <br />$ret = socket_listen($socket, 5);<br />if($ret)<br />{<br /> while (true)<br /> {<br /> $spawn = socket_accept($socket);<br /> if(!$spawn) break;<br /> $output = "congratulations,you have connected server:" . $host . "!";<br /> socket_write($spawn, $output, strlen ($output)) or die("error\n"); <br /> $input = socket_read($socket, 100000);<br /> <b>%本文@来源gao@!dai!ma.com搞$$代^@码!网</b><strong>搞代gaodaima码</strong>socket_write($spawn, $input, strlen ($input)) or die("error\n"); <br /> socket_close($spawn);<br /> }<br />}<br />socket_close();<br />?><br />
x.php
<?php <br />// 设置一些基本的变量 <br />$host = "192.168.1.110"; <br />$port = 8080; <br />// 设置超时时间 <br />set_time_limit(0); <br />// 创建一个Socket <br />$commonProtocol = getprotobyname("tcp");<br />$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);<br />if(!$socket) echo "can't creat socket";<br />//绑定Socket到端口 <br /><br />$result = socket_connect($socket,$host,$port);<br />if($result)<br />{<br /> $output="abc";<br /> socket_write($socket, $output, strlen ($output));<br /> $input = socket_read($socket, 1024);<br />}<br />echo $input;<br />?>
在服务器先打开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的连接
搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP+SOCKET 由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受