php java套接字
我在使用套接字时遇到问题,实际上我正在尝试将一个套接字从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
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 MerleInetAddress.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程序有关,但我不明白为什么