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

求助: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的连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值