2014-09-21 2 views
0

소켓을 사용하여 PHP에서 Java로 통신하려고합니다.PHP to Java - 소켓

private static ServerSocket socket; 

private static Socket connection; 
private static String command  = new String(); 
private static String responseStr = new String(); 

private static int port = 2500; 

public static void main(String args[]) { 
    System.out.println("Server is running."); 

    try { 
     socket = new ServerSocket(port); 

     while (true) { 
      connection = socket.accept(); 

      InputStreamReader inputStream = new InputStreamReader(connection.getInputStream()); 
      DataOutputStream response = new DataOutputStream(connection.getOutputStream()); 
      BufferedReader input = new BufferedReader(inputStream); 

      command = input.readLine(); 
      response.writeBytes(responseStr); 
      response.flush(); 
     } 
    } catch (IOException e) { 
     System.out.println("Fail!: " + e.toString()); 
    } 
} 

나는 다음과 같은 PHP 코드를 가지고 : 나는 다음과 같은 자바 코드를 내가는 PHP를 실행할 때, 나는 다음과 같은 오류가 발생, 미세 시작하는 자바 응용 프로그램을 시작

<?php 
$socket = stream_socket_server("tcp://192.168.0.10:2500", $errno, $errstr); 
if (!$socket) { 
    echo "$errstr ($errno)<br />\n"; 
} else { 
    while ($conn = stream_socket_accept($socket)) { 
     fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n"); 
     fclose($conn); 
    } 
    fclose($socket); 
} 

를 :

An attempt was made to access a socket in a way forbidden by its access permissions. (0) 

나는 Google을 검색하여 아무 것도 작동하지 않았지만 찾을 수있는 모든 해결책을 시도했습니다. 두 컴퓨터를 모두 재시작하고 방화벽을 비활성화했지만 어느 것도 작동하지 않았습니다.

여기에서 어디로 가야할지 모르겠습니다.


[코멘트에서 업데이트 :]

192.168.0.10 그것에 자바 응용 프로그램과 웹 서버와 시스템입니다. 다른 컴퓨터에서 연결 중입니다. 192.168.0.7

+0

192.168.0.10가있는 컴퓨터의 IP 주소입니다? – alk

+0

192.168.0.10은 Java 응용 프로그램과 웹 서버가있는 컴퓨터입니다. 다른 컴퓨터에서 연결 중입니다. 192.168.0.7 –

+0

현재 문제가 해결되지는 않지만이 작업을 수행하기 위해 AMQP 메시징 프로토콜을 사용 해본 적이 있습니까? – SpencerD

답변

1

코드가 실행되고있는 시스템에서만 소켓을 만들 수 있습니다. PHP 코드가 192.168.0.7에서 실행되는 경우

그래서, 다음을 수행하십시오

$socket = stream_socket_server("tcp://192.168.0.7:2500", $errno, $errstr);