Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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
php java套接字_Java_Php_Sockets - Fatal编程技术网

php java套接字

php java套接字,java,php,sockets,Java,Php,Sockets,我在使用套接字时遇到问题,实际上我正在尝试将一个套接字从php脚本发送到java服务器: public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(43278); Socket clientSocket = serverSocket.accept(); System.out.println("Socket receive

我在使用套接字时遇到问题,实际上我正在尝试将一个套接字从php脚本发送到java服务器:

public static void main(String[] args) throws IOException {
    ServerSocket serverSocket = new ServerSocket(43278);

    Socket clientSocket = serverSocket.accept();
    System.out.println("Socket received");

    serverSocket.close();
    clientSocket.close();
}
以下是我的php:

<form action="#" method="Post">
    <input type="text" placeholder="Message" name="msg">
    <input type="submit" value="Send message">
</form>

<?php
if (isset($_POST['msg'])) {
    $address="127.0.0.1";
    $port="43278";
    $msg = $_POST['msg'];

    $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

    socket_sendto($socket, $msg, strlen($msg), 0, $address, $port);

    echo "<p>Message sent</p>";
}
java服务器没有接收到任何东西,因此我尝试通过java程序发送套接字,它可以工作:

public static void main(String[] args) throws IOException {
    Socket socket;
    socket = new Socket(InetAddress.getLocalHost(), 43278);
    socket.close();
}
但我不确定问题是否是由于php脚本造成的,因为该软件似乎从php接收套接字:

最后我想这是由于ip地址,但我找不到关于它的信息,所以我不确定


关于。

它成功了,我使用了UDPServer.java示例。事实上,我不得不使用DatagramSocket而不是ServerSocketFlorian Merle

InetAddress.getLocalHost()的结果?这是我的本地IP:Pc Florian/192.168.56.1,但是如果我用“127.0.0.1”替换它,服务器仍然会获得sockettry来调试脚本
if($socket){$send=socket_sendto($socket,$msg,strlen($msg),0,$address,$port);if($send!=-1){print'send!'}否则{print'fail!'}否则{print'connection failed!';}
并尝试将$address设置为双引号->
“$address”
嗯,显然套接字已发送,但我认为它与java程序有关,但我不明白为什么