запрос с php на java сервер

Извините меня . Я новичок в веб-разработке.
У меня есть простой сервер Java, который прослушивает порт 12111 на локальном хосте. здесь есть:

public static void doit() throws IOException {

ServerSocket m_ServerSocket = new ServerSocket(12111);
int id = 0;
while (true) {
Socket clientSocket = m_ServerSocket.accept();
ClientServiceThread cliThread = new ClientServiceThread(clientSocket, id++);
cliThread.start();
}
}

Теперь у меня есть PHP-скрипт на сервере, который там Java. Теперь я хочу отправить запрос на этот порт.
когда я запускаю Java-сервер на этом порту, я набираю localhost:12111 и беги. Теперь не имеет значения, отправьте или получите запрос. какой код я должен написать в php?
благодарю вас .

1

Решение

Используя PHP CURL (вы должны активировать php_curl.dll в php.ini и перезапустить сервер Apache):

# WARNING : maybe you should provide your context in the URL : provide the same URL that you use in your browser for example
$url = "http://127.0.0.1:12111";
#provide your parameters like : ?param1=value1&param2=value2&.....&paramN=valueN
$post_params_s = "" ;

$ch  = curl_init ( $url ) ;
curl_setopt ( $ch, CURLOPT_POST          , TRUE ) ;
curl_setopt ( $ch, CURLOPT_POSTFIELDS    , $post_params_s ) ;
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE ) ;             // -- put it to FALSE, write directly in main output
curl_exec   ( $ch ) ;
curl_close  ( $ch ) ;

Использование Socket (ваш Java-сервер будет читать и отправлять данные через Socket)

$service_port = 12111;
$address = "127.0.0.1";

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
print "Java Server Is down, or firewall protected";
exit 1;
}

$result = socket_connect($socket, $address, $service_port);
if ($socket === false) {
print "fatal error, (details)" . socket_strerror(socket_last_error($socket));
exit 2;
}

# YOU SHOUL PROVIDE YOUR REQUEST DATA IN THIS VARIABLE
$in = "";
$out = '';

socket_write($socket, $in, strlen($in));
$out = socket_read($socket, 2048);
print "received data : " . $out;

socket_close($socket);

Надеюсь, это поможет 🙂

1

Другие решения

По крайней мере, у вас есть 2 разных способа связаться с вашим Java сервером из PHP:

  • Использование PHP-сокетов
  • Использование PHP CURL
1

По вопросам рекламы [email protected]