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 :: Несколько подключений к сокету

 PHP.SU

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


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

> Описание: как реализовать?
nordghost
Отправлено: 09 Февраля, 2012 - 17:37:12
Post Id



Посетитель


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


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




появился ещё 1 вопрос:

Есть 2 скрипта, серверный:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.  
  5. $addres= '192.168.168.136';
  6. $port=10001;
  7. $sock=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  8. socket_bind($sock, $addres, $port);
  9. while(true){
  10. socket_listen($sock, 5);
  11. $msgsock=socket_accept($sock);
  12. $buf=socket_read($msgsock, 1024);
  13. $ofile=fopen('log.txt', 'a');
  14. fwrite($ofile, $buf);
  15. fclose($ofile);
  16. }
  17. ?>
  18.  
  19.  


А так же клиентский:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. <?PHP
  5. while(true){
  6. $memusage=file_get_contents("../../../proc/meminfo");
  7. preg_match_all("~([0-9]+)~m", $memusage, $memusagearr);
  8. $procusage=file_get_contents("../../../proc/loadavg");
  9. preg_match_all("~([0-9]+)~m", $procusage, $procusagearr);
  10. $disks=disk_total_space('../../../home');
  11. $diskfs=disk_free_space('../../../home');
  12. $disku=$disks-$diskfs;
  13. $disks=round(((($disks/1024)/1024)/1024))."Gb ";
  14. $diskfs=round(((($diskfs/1024)/1024)/1024))."Gb ";
  15. $disku=round(((($disku/1024)/1024)/1024))."Gb ";
  16. $memtot=round($memusagearr[1][0]/1024)."Mb ";
  17. $memus=round($memusagearr[1][5]/1024)."Mb ";
  18. $curtime=date("d-m-Y-H-i")." ";
  19. $procusg=$procusagearr[1][1]."%"."\n";
  20. $allparam=array($curtime, $disks, $diskfs, $disku, $memtot, $memus, $procusg);
  21. $msg=implode("", $allparam);
  22. $addres='192.168.168.136';
  23. $port='10001';
  24. $socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  25. socket_connect($socket, $addres, $port);
  26. socket_write($socket, $msg);
  27. socket_close($socket);
  28. sleep(30);
  29. }
  30.  
  31. ?>
  32.  


Как добавить возможность подключатся ещё 1 клиенту и писать в файл log2 инфу со 2-го клиента.


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


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Запустить две копии клиентского скрипта?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
nordghost
Отправлено: 09 Февраля, 2012 - 17:44:51
Post Id



Посетитель


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


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




да именно запустить 2 копии,
сейчас у меня 2 компа и с 1 поступают данные на 2, хочу добавить 3-й.


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
PATCH
Отправлено: 09 Февраля, 2012 - 17:45:08
Post Id



Частый посетитель


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


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




EuGen пишет:
Запустить две копии клиентского скрипта?
тада походу будет в 1 лог файл писать инфу о клиентах

(Отредактировано автором: 09 Февраля, 2012 - 17:45:36)

 
 Top
EuGen Администратор
Отправлено: 09 Февраля, 2012 - 17:49:06
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Ах да, разные файлы? Тогда проще слушать на втором сокете.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
nordghost
Отправлено: 09 Февраля, 2012 - 17:49:14
Post Id



Посетитель


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


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




Ну вот а нужно сделать чтобы в разные Огорчение то есть открывать новый порт для каждого последующего компа? если тут у меня 10001 то открывать 10000? и если например компов будет не 2 -3 а 20-30?

(Отредактировано автором: 09 Февраля, 2012 - 17:51:46)



-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
PATCH
Отправлено: 09 Февраля, 2012 - 17:56:16
Post Id



Частый посетитель


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


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




а обязательно на разных компах?)
 
 Top
EuGen Администратор
Отправлено: 09 Февраля, 2012 - 18:04:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Ну тогда посылайте в сокет что-нибудь вроде
[Информация о клиенте][Разделитель][Данные]
Например,

Computer1:String data

А на сервере разбирайте эту строку и в соответствии с данными в [Информация о клиенте] пишите файл.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
default
Отправлено: 09 Февраля, 2012 - 18:30:57
Post Id


Новичок


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


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




подожди клиентом пока откроется General socket и все дела
может код написать?))
 
 Top
nordghost
Отправлено: 09 Февраля, 2012 - 22:05:51
Post Id



Посетитель


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


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




Можно и написать возни куча, но как всегда толковый совет от EuGen

большое спасибо мне аж не верится что я не смог придумать столь простое решение!


-----
<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