Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
使用套接字将数据从java发送到php-始终为空_Java_Php_Sockets_Ports - Fatal编程技术网

使用套接字将数据从java发送到php-始终为空

使用套接字将数据从java发送到php-始终为空,java,php,sockets,ports,Java,Php,Sockets,Ports,我尝试在php和java套接字之间进行通信。两者都在同一台机器上运行。将数据从php发送到java非常有效。但另一方面却不行 我也尝试了很多其他的例子,因此我甚至不确定问题是否是因为代码或任何其他的想法而发生的 防火墙被关闭了 端口4308的输入和输出端口角色设置为允许连接 浏览器:Chrome和Firefox 使用Apache的服务器uniServer 我现在使用的一个非常简单的示例: Java(发件人): 我不确定是否需要osw.flush()(我尝试了使用和不使用) php(接收器):

我尝试在php和java套接字之间进行通信。两者都在同一台机器上运行。将数据从php发送到java非常有效。但另一方面却不行

我也尝试了很多其他的例子,因此我甚至不确定问题是否是因为代码或任何其他的想法而发生的

  • 防火墙被关闭了
  • 端口4308的输入和输出端口角色设置为允许连接
  • 浏览器:Chrome和Firefox
  • 使用Apache的服务器uniServer
我现在使用的一个非常简单的示例:

Java(发件人):

我不确定是否需要osw.flush()(我尝试了使用和不使用)

php(接收器):


当我监视TCPView上的端口时,我可以看到php脚本正在侦听这个端口,当我启动java程序时,它停止侦听并返回NULL。这意味着php脚本注意到了连接,但没有得到“Hello World\n”字符串。

您提到了Chrome/Firefox和Apache,但这是通过TCP套接字的Java->php。浏览器或Apache从何而来?它们通过HTTP工作。到底出了什么问题?响应为空?PHP端有任何错误吗?TBH如果您想通过网络与PHP脚本对话(事实上,它们在同一台物理机器上并不会真正改变连接过程的发生方式),那么使用HTTP不是更容易吗?感谢您的快速响应。Apache是php运行的服务器,chrome和firefox是我测试它的浏览器,我不确定它是否有帮助,因此我将它添加到了我的问题中。我没有收到任何错误消息。
$inpit
在哪里分配?你提到了chrome/firefox和Apache,但这是通过TCP套接字的Java->php。浏览器或Apache从何而来?它们通过HTTP工作。到底出了什么问题?响应为空?PHP端有任何错误吗?TBH如果您想通过网络与PHP脚本对话(事实上,它们在同一台物理机器上并不会真正改变连接过程的发生方式),那么使用HTTP不是更容易吗?感谢您的快速响应。Apache是php运行的服务器,chrome和firefox是我测试它的浏览器,我不确定它是否有帮助,因此我将它添加到我的问题中。我没有收到任何错误消息。
$inbit
在哪里分配?
public static void testSend() throws UnknownHostException, IOException{
        Socket socket = null;
        OutputStreamWriter osw;
        String str = "Hello World\n";
        socket = new Socket("localhost", 4308);

        osw = new OutputStreamWriter(socket.getOutputStream(), "UTF-8");
        osw.write(str, 0, str.length());
        osw.flush();

        socket.close();
}
<?php
    echo "start\n";

    $address = 'localhost';
    $port = 4308;

    $mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_bind($mysock,$address, $port) or die('Could not bind to address');
    socket_listen($mysock, 5);
    $client = socket_accept($mysock);

    // read 1024 bytes from client
    $input = socket_read($client, 1024, PHP_NORMAL_READ);

    var_dump($inpit);

    socket_close($client);
    socket_close($mysock);

    echo "end";
?>
start NULL end