Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php在本地端口上重复读取?_Php_Sockets_Amazon Ec2_Instance - Fatal编程技术网

如何使用php在本地端口上重复读取?

如何使用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

我在这个话题上搜索了很多,尝试了很多东西,但我还是被卡住了

我有一个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 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状态。。我仍然得到同样的错误。。。