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