Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: SOCKET =(

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ошибка при соединении
nordghost
Отправлено: 05 Февраля, 2012 - 17:31:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Значит такая проблема на 1-й машине лежит скрипт сервера:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.     header('Content-Type: text/plain;');
  4.     error_reporting(E_ALL ^ E_WARNING);
  5.     set_time_limit(0);
  6.    
  7.     echo "-= Server =-\n\n";
  8.  
  9.     $address = 'localhost';
  10.     $port    = 10001;
  11.  
  12.     try {
  13.    
  14.         echo 'Create socket ... ';
  15.         if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
  16.             throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
  17.         } else {
  18.             echo "OK\n";
  19.         }
  20.  
  21.         echo 'Bind socket ... ';
  22.         if (($ret = socket_bind($sock, $address, $port)) < 0) {
  23.             throw new Exception('socket_bind() failed: '.socket_strerror(socket_last_error())."\n");
  24.         } else {
  25.             echo "OK\n";
  26.         }
  27.  
  28.         echo 'Listen socket ... ';
  29.         if (($ret = socket_listen($sock, 5)) < 0) {
  30.             throw new Exception('socket_listen() failed: '.socket_strerror(socket_last_error())."\n");
  31.         } else {
  32.             echo "OK\n";
  33.         }
  34.  
  35.         do {
  36.             echo 'Accept socket ... ';
  37.             if (($msgsock = socket_accept($sock)) < 0) {
  38.                 throw new Exception('socket_accept() failed: '.socket_strerror(socket_last_error())."\n");
  39.             } else {
  40.                 echo "OK\n";
  41.             }
  42.            
  43.             $msg = "Hello, Client!";
  44.             echo "Say to client ($msg) ... ";
  45.             socket_write($msgsock, $msg, strlen($msg));
  46.             echo "OK\n";
  47.  
  48.             do {
  49.            
  50.                 echo 'Client said: ';
  51.                 if (false === ($buf = socket_read($msgsock, 1024))) {
  52.                     throw new Exception('socket_read() failed: '.socket_strerror(socket_last_error())."\n");
  53.                 } else {
  54.                     echo $buf."\n";
  55.                 }
  56.                
  57.                 if (!$buf = trim($buf)) {
  58.                     continue;
  59.                 }
  60.                
  61.                 if ($buf == 'shutdown') {
  62.                     socket_close($msgsock);
  63.                     break 2;
  64.                 }
  65.                
  66.                 echo "Say to client ($buf) ... ";
  67.                 socket_write($msgsock, $buf, strlen($buf));
  68.                 echo "OK\n";
  69.                
  70.             } while (true);
  71.            
  72.         } while (true);
  73.  
  74.     } catch (Exception $e) {
  75.         echo "\nError: ".$e->getMessage();
  76.     }
  77.    
  78.     if (isset($sock)) {
  79.    
  80.         echo 'Close socket ... ';
  81.         socket_close($sock);
  82.         echo "OK\n";
  83.    
  84.     }
  85. ?>
  86.  
  87.  


На 2-й машине клиента:

PHP:
скопировать код в буфер обмена
  1. <?
  2.     header('Content-Type: text/plain;');
  3.     error_reporting(E_ALL ^ E_WARNING);
  4.     set_time_limit(0);
  5.    
  6.     echo "-= Client =-\n\n";
  7.  
  8.     $address = '192.168.168.36';
  9.     $port    = 10001;
  10.  
  11.     try {
  12.    
  13.         echo 'Create socket ... ';
  14.         $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  15.         if ($socket < 0) {
  16.             throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
  17.         } else {
  18.             echo "OK\n";
  19.         }
  20.  
  21.         echo 'Connect socket ... ';
  22.         $result = socket_connect($socket, $address, $port);
  23.         if ($result === false) {
  24.             throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n");
  25.         } else {
  26.             echo "OK\n";
  27.         }
  28.  
  29.         echo 'Server said: ';
  30.         $out = socket_read($socket, 1024);
  31.         echo $out."\n";
  32.        
  33.         $msg = "Hello, Server!";
  34.         echo "Say to server ($msg) ...";
  35.         socket_write($socket, $msg, strlen($msg));
  36.         echo "OK\n";
  37.        
  38.         echo 'Server said: ';
  39.         $out = socket_read($socket, 1024);
  40.         echo $out."\n";
  41.        
  42.         $msg = 'shutdown';
  43.         echo "Say to server ($msg) ... ";
  44.         socket_write($socket, $msg, strlen($msg));
  45.         echo "OK\n";
  46.        
  47.     } catch (Exception $e) {
  48.         echo "\nError: ".$e->getMessage();
  49.     }
  50.    
  51.     if (isset($socket)) {
  52.    
  53.         echo 'Close socket ... ';
  54.         socket_close($socket);
  55.         echo "OK\n";
  56.        
  57.     }
  58. ?>


Не могу понять почему клиент не может соеденится с сервером на этапе Сonection, помогите - очень надо! заранее списибо всем!

Пишет - конекшин рефюзед

(Отредактировано автором: 05 Февраля, 2012 - 17:33:25)



-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
Мелкий Супермодератор
Отправлено: 05 Февраля, 2012 - 17:42:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Вы сами указали слушать localhost. К локалхосту можно подключиться только с локалхоста.


-----
PostgreSQL DBA
 
 Top
nordghost
Отправлено: 05 Февраля, 2012 - 17:59:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




В 1 скрипте указат Ip сервера на котором он лежит?


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
Мелкий Супермодератор
Отправлено: 05 Февраля, 2012 - 18:16:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Угу.


-----
PostgreSQL DBA
 
 Top
nordghost
Отправлено: 05 Февраля, 2012 - 18:42:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Спасибо огромное!!!!! Радость


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB