Извините меня . Я новичок в веб-разработке.
У меня есть простой сервер 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?
благодарю вас .
Используя 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¶m2=value2&.....¶mN=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);
Надеюсь, это поможет 🙂
По крайней мере, у вас есть 2 разных способа связаться с вашим Java сервером из PHP: