2016-10-04 2 views
0

Мое требование - разместить скрипт сервера php-сокета в AWS EC2. и обмениваться данными с этим сервером сокетов. Это то, что я сделал до сих пор, но не работает.Принимать серверную программу PHP Socket в AWS

server.php скрипт, который работает сервер сокет и слушает клиентов:

<?php 
// set some variables 
$host = "127.0.0.1"; 
$port = 53; 

// don't timeout! 
set_time_limit(0); 

// create socket 
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); 

// bind socket to port 
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n"); 

// start listening for connections 
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n"); 

// accept incoming connections 
// spawn another socket to handle communication 
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n"); 

// read client input 
$input = socket_read($spawn, 1024) or die("Could not read input\n"); 

// clean up input string 
$input = trim($input); 

echo "Client Message : ".$input; 
// reverse client input and send back 

$output = strrev($input) . "\n"; 
socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n"); 

// close sockets 
socket_close($spawn); 
socket_close($socket); 

В группе безопасности AWS, я добавил следующие въездного правила:

enter image description here

  • Я запускаю сервер, php-скрипт из SSH, используя команду «php server.php» ,
  • Я пытался подключиться к серверу с SocketTest инструмента, где я вошел следующие значения

хозяин: 52.xx.xx.xxx (маскируется фактическое значение здесь) и порта: 53

Я не могу подключиться к серверу сокетов. Было бы очень полезно, если кто-то может вести меня, если я что-нибудь здесь отсутствует

Пожалуйста, обратите внимание, что программа же server.php работает нормально при тестировании локального сервера XAMPP

+0

Установлена ​​ли связь? Сохраняется ли проблема, если вы принимаете все входящие протоколы на всех портах вашей группы безопасности? – Defozo

+0

Соединение время ожидания. Можете ли вы помочь мне принять все входящие протоколы на всех портах в группе безопасности? – Surya

+0

Группы безопасности -> Выберите группу безопасности -> нажмите «Изменить» -> «Тип»: весь трафик -> протокол: все -> диапазон портов: 0-65535 -> источник: Anywhere и 0.0.0.0/0. Конечно, имейте в виду, что это только для отладки. Вы не должны были устанавливать это на производстве. – Defozo

ответ

0

Вы использовали «127.0.0.1», как хост в сценарии сервера. Вы должны заменить его собственным IP-адресом своего сервера.

 Смежные вопросы

  • Нет связанных вопросов^_^