【问题标题】:why connection is refused while trying to use socket in PHP and android?为什么尝试在 PHP 和 android 中使用套接字时连接被拒绝?
【发布时间】:2016-05-25 02:00:01
【问题描述】:

为什么我得到 java.net.ConnectException: /192.168.1.5:6789 - 连接被拒绝?

我正在使用 php 和 android java 代码。在问这个问题之前,我检查了java.net.ConnectException: Connection refused 之类的问题。虽然有用,但无法解决我的问题。

场景是

1- 我正在使用 XAMPP

2- windows 防火墙已关闭

3- 当我运行 php 脚本时,我可以通过检查 netstat -a 看到端口 6789 设置为侦听

4- java“android”代码:

    try
        {
            InetAddress serverAddr = InetAddress.getByName(serverIpAddress);//"192.168.1.5" the PC which XAMPP is runing on
            socket = new Socket(serverAddr, REDIRECTED_SERVERPORT);//6789
        }
        catch (UnknownHostException e1)
        {
            e1.printStackTrace();
        }
        catch (IOException e1)
        {
            e1.printStackTrace();
        }

5- php代码

 <?php
set_time_limit( 0 );
$address = '127.0.0.1';
$port = 6789;
$sock = socket_create( AF_INET, SOCK_STREAM, 0 ); // 0 for  SQL_TCP
socket_bind( $sock, 0, $port ) or die( 'Could not bind to address' );  
socket_listen( $sock );
  while (true) {
    $client = socket_accept( $sock );
    $input = socket_read( $client, 1024000 );
    socket_write( $client, $response );
    socket_close( $client );
 }

socket_close( $sock );

6- 我运行 php 脚本并且它一直在加载,这意味着它正在侦听并且处于 while 块中

7- 我启动 android 应用程序并收到此通知

java.net.ConnectException: /192.168.1.5:6789 - 连接被拒绝

最后我确定 PC(服务器)IP 地址是正确的,并且在清单中设置了互联网权限

提前谢谢你!

【问题讨论】:

    标签: java php android sockets


    【解决方案1】:

    我不认为socket_create( AF_INET, SOCK_STREAM, 0 ); 是正确的。第三个数字是协议号,文档说您应该为此使用SOL_TCP 常量。

    值 0 是 IP 的协议号。 TCP 的协议号是 6。这两个都是根据我的 Linux 机器上的“/etc/protocols”...根据socket_create 和getprotobynumber 的文档/cmets 的最终来源。

    【讨论】:

    • 感谢您的回复。问题实际上是为按钮单击事件放置 java 代码。当我连续点击它两次时,连接被拒绝。我应该把它放在 onCreate 函数上。
    • 关于“我不认为 socket_create(AF_INET, SOCK_STREAM, 0); 是正确的”。 0 表示正好是 SOL_TCP
    • @EhsanJeihani - 在什么平台上?
    • 你没看到那些关键词
    • 3) 我怀疑您实际上已经将 PHP 实现为依赖于平台。很好……前提是您不尝试在 Linux 或(可能)MacOS 上运行服务器 PHP 代码,我怀疑 SOL_TCP 不为零。
    猜你喜欢
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2019-10-20
    • 2015-03-09
    • 1970-01-01
    • 2021-11-16
    • 2014-04-23
    • 1970-01-01
    相关资源
    最近更新 更多