gpt4 book ai didi

java - 为什么尝试在 PHP 和 Android 中使用套接字时连接被拒绝?

转载 作者:行者123 更新时间:2023-12-01 10:25:11 24 4
gpt4 key购买 nike

为什么我收到 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 block 中

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

java.net.ConnectException: /192.168.1.5:6789 - Connection refused

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

提前谢谢您!

最佳答案

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

值 0 是 IP 的协议(protocol)号。 TCP 的协议(protocol)号是 6。这两个都是根据我的 Linux 机器上的“/etc/protocols”...这是根据 socket_create 的文档/注释的最终来源>获取原型(prototype)编号

关于java - 为什么尝试在 PHP 和 Android 中使用套接字时连接被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35387685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com