2016-07-08 119 views
1

我有一個可用的Java套接字,但我需要一些幫助連接到它與PHP。PHP套接字拒絕連接(Java服務器)

我的問題:我可以從Java客戶端連接到Java套接字併發送/接收消息,但是當我嘗試使用PHP連接到同一套接字時,它將不會連接。

這是我在while循環插座:(記住這部分工作)

Socket socket = serverSocket.accept(); 
System.out.println("Got connection"); 
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
String cmd = in.readLine(); 
System.out.println("Received: " + cmd); 
String response = "It worked. Received: " + cmd; 
out.println(response); 
... 

而只是爲了顯示工作的另一半,這是客戶端:

Socket socket = new Socket("<ip>", port); 
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
out.println("test msg"); 
out.flush(); 
System.out.println("Sent message"); 
String r = in.readLine(); 
System.out.println("Response: " + r); 

現在爲不起作用的部分。
這是我在做什麼,試圖用PHP連接:

$s = fsockopen('<ip>', $port, $errno, $errstr, 25); 
if (!$s) { 
    echo 'Error: '.$errstr; 
    die; 
} 

運行輸出:「錯誤:連接被拒絕」

有誰知道我怎麼能診斷爲什麼PHP無法連接但Java客戶端可以嗎?他們都在外部訪問套接字,並且由於Java客戶端可以連接它並不被阻塞。有沒有我忘了設置的協議?

我看了幾十個同樣的問題的其他人,但沒有人提供了答案。

回答

0

如果允許fsockopen,你看看php.ini嗎?

1,php.ini中,尋找行:disable_functions選項=的fsockopen 2,php.ini中,看到了allow_url_fopen = On或allow_url_fopen選項=關

+0

我用不上爲php.ini,但我可以運行'phpinfo(4)'查看所有選項。 allow_url_fopen是「On」,disable_functions沒有任何值。 –