如何使用php在本地端口上重复读取?
我在这个话题上搜索了很多,尝试了很多东西,但我还是被卡住了 我有一个ec2实例,另一个实例通过tcp在特定端口上发送一些数据。我正在使用以下代码如何使用php在本地端口上重复读取?,php,sockets,amazon-ec2,instance,Php,Sockets,Amazon Ec2,Instance,我在这个话题上搜索了很多,尝试了很多东西,但我还是被卡住了 我有一个ec2实例,另一个实例通过tcp在特定端口上发送一些数据。我正在使用以下代码 $host = "x.x.x.x"; $port = 2048; $socket = socket_create(AF_INET, SOCK_STREAM, 0) ; if (!socket_setopt($socket, SOL_SOCKET, SO_REUSEADDR, 1)) { echo socke
$host = "x.x.x.x";
$port = 2048;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) ;
if (!socket_setopt($socket, SOL_SOCKET, SO_REUSEADDR, 1))
{
echo socket_strerror(socket_last_error($socket));
exit;
}
$result=socket_bind($socket, $host, $port);
$result = socket_listen($socket, 3);
$spawn = socket_accept($socket);
$input = socket_read($spawn, 84);
echo $input;
socket_close($spawn);
socket_close($socket);
有时运行,有时不运行,它在套接字绑定时出错:
"socket_bind(): unable to bind address [98]: Address already in use"
我在这上面看了很多,但是没有任何效果
如果有人带着什么东西来。。请帮忙
塔克斯
mayur更改您的端口并尝试…您确定您的php脚本在同一时间只运行一个实例吗?听起来你不止一次运行它。您只能将一个实例绑定到特定端口。@stewe Thanx供您评论。……我的php脚本可以运行多次。这是否意味着它不会绑定到端口。我每次都要关上插座。还有什么办法呢?如果您以串行方式多次运行它,这应该不会有问题,但在第一个脚本尚未到达套接字时再次启动它,则会有问题。我会反转服务器/客户端的角色,因此在获取数据时,您的脚本将扮演客户端,而不是您示例中的服务器。我如何反转角色。。你能详细说明一下吗。。。。即使脚本完成执行后,它也会将端口置于TIME\u WAIT状态,然后再置于CLOSE\u WAIT状态。。我仍然得到同样的错误。。。