java - PHP 到 Java - 套接字

标签 java php sockets

我正在尝试使用套接字从 php 到 java 进行通信。我有以下java代码:

private static ServerSocket socket;

private static Socket connection;
private static String command       = new String();
private static String responseStr   = new String();

private static int port = 2500;

public static void main(String args[])  {
    System.out.println("Server is running.");

    try  {
        socket = new ServerSocket(port);

        while (true)  {
            connection = socket.accept();

            InputStreamReader inputStream = new InputStreamReader(connection.getInputStream());
            DataOutputStream response = new DataOutputStream(connection.getOutputStream());
            BufferedReader input = new BufferedReader(inputStream);

            command = input.readLine();
            response.writeBytes(responseStr);
            response.flush();
        }
    } catch (IOException e)  {
        System.out.println("Fail!: " + e.toString());
    }
}

我有以下 PHP 代码:

<?php
$socket = stream_socket_server("tcp://192.168.0.10:2500", $errno, $errstr);
if (!$socket) {
    echo "$errstr ($errno)<br />\n";
} else {
    while ($conn = stream_socket_accept($socket)) {
        fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
        fclose($conn);
    }
    fclose($socket);
}

我启动了 java 应用程序,它启动正常,当我运行 php 时,出现以下错误:

An attempt was made to access a socket in a way forbidden by its access permissions. (0)

我已经在 Google 上搜索并尝试了所有能找到的解决方案,但没有任何效果。我已经重新启动了两台机器并禁用了防火墙,但都不起作用。

我不知道从这里该去哪里。

<小时/>

[评论更新:]

192.168.0.10 是装有 java 应用程序和 Web 服务器的计算机。我从另一台机器192.168.0.7连接

最佳答案

您只能在运行代码的机器上创建套接字。

因此,如果 PHP 代码在 192.168.0.7 上运行,则执行以下操作:

$socket = stream_socket_server("tcp://192.168.0.7:2500", $errno, $errstr);

关于java - PHP 到 Java - 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25961796/

相关文章:

java - 哪些开源软件包可用于 Java/Grails Web 应用程序的全面功能、负载和性能测试?

java - 获取登录liferay门户的用户的用户凭据

java - 如何更改所有按钮的背景颜色?

PHP - 上传到服务器时获取apk包名称

javascript - Adobe Creative SDK for Web 保存编辑后的图像

c++ - IPv6 到 IPv4 的转换只给出 0.0.0.1

c - 如何中断一个IO block ?

java - 在 try-wtth-resources block 中使用 GZIPOutputStream 对象时是否需要调用 finish()

javascript - 从 AJAX 打印页面

c - 如何确定 SSL 套接字上的数据何时完成