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]   

> Без описания
Рачей
Отправлено: 10 Января, 2017 - 14:43:09
Post Id


Гость


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


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




Запустил сокет на компе.. lsof показывает что сокет работает.. стал искать информацию как через терминал подключиться в этом сокету и отправить туда что-то что бы получить в ответ что-то ничего найти не могу.. в гугле одни вебсокеты и сокет io все бля веба.. пипец какой-то... как будь-то для терминала нет никаких команд подключения и отправки данных??? Я как-то давно рисовалку делал на флеше через сокеты.. и помню что для тестов использовал какие-то команды через терминал... но хоть убей не помню ни одной.. помогите куда копать?
 
 Top
Мелкий Супермодератор
Отправлено: 10 Января, 2017 - 14:54:23
Post Id



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


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


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




nc (netcat), telnet


-----
PostgreSQL DBA
 
 Top
Рачей
Отправлено: 10 Января, 2017 - 15:40:03
Post Id


Гость


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


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




СпасибоУлыбка на nc я уже наткнулся и все работает.. сообзщение есть о клиенте.. не найду только как там сообщение отправить.. похлду нет такого... телнет у меня почему-то не подключился... видимо я не правильно команду вводил
сейчас еще попробую
(Добавление)
Блин, ну подключаться-то он подключается и там и так... а как мне отправить ему массив переменных что бы он мне ответил и при определенном условии сокет закрылся?
 
 Top
Мелкий Супермодератор
Отправлено: 10 Января, 2017 - 16:15:24
Post Id



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


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


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




Вбить ручками в нужном формате. Или перенаправить что-нибудь другое в stdin. Переменные по сети не передаются. По сети передаются байты.
Для бинарных протоколов удобнее сразу писать клиента.


-----
PostgreSQL DBA
 
 Top
Рачей
Отправлено: 10 Января, 2017 - 16:30:34
Post Id


Гость


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


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




ну я на сколько понял можно файл отправлять... Я вот тут нашел исходник сокета который я делал

PHP:
скопировать код в буфер обмена
  1.  
  2. if(!empty($data)) {
  3.                                 $data = explode('|',$data);
  4.                                 $hlam = $data[0]; // не понятно какой хлам!:-(((( вроде код а с какими-то хуйнями идет
  5.                                 $secure = $data[1]; // код безопасности
  6.                                 $otkuda = $data[2]; // какое приложение отправляет
  7.                                 $kuda = $data[3]; // куда отправляем какому приложению
  8.                                 $kto = $data[4]; // например ник, помимо его есть еще uid
  9.                                 $chto = $data[5]; // что хочет это приложение, например авторизация
  10.                                 $komu = $data[6]; // для кого это приложение, что-то отправляет, юзерy какоmy
  11.                                 $comanda = $data[7]; // что этому юзеру отправляется
  12.                                 // Команды
  13.                                
  14.                                 $secure = trim($secure);
  15.                                 if ($secure == '012345') { // если пришел код безопасности, то отправить и получить
  16.                                         $return = '';
  17.                                         switch($command) {
  18.                                                 default: $return = $otkuda.'|'.$kuda.'|'.$kto.'|'.$chto.'|'.$komu.'|'.$comanda.'|'.$uid; break;
  19.                                 }
  20.  



Этот кусок отвечал за то что из флешки приходило и отправлял взад... Помню что отправлял или для чата или координаты рисунка... делал это лет 10 назад.. ничего не помню.. как мне через терминал отправить какие-нибудь байты? желательно как бы попробовать идентифицировать того кто отправляет?
 
 Top
Мелкий Супермодератор
Отправлено: 10 Января, 2017 - 16:42:49
Post Id



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


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


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




Сокет - это тупо канал передачи данных, транспортный уровень OSI.
Что вы передаёте и как это используете - задача прикладного уровня. Сокет, транспортный уровень - гораздо ниже и ничего не знает о прикладном уровне, не его это дело. Дело транспорта - озаботиться передачей данных между двумя хостами и скрыть за собой все вопросы фрагментации пакетов, как и вообще пакеты данных, маршрутизацию и всю остальную нижележащую машинерию. TCP сокет идентифицируется 4 цифрами: ip и номер порта отправителя, ip и номер порта получателя. Пару из этих значений вы знаете - там запущен сетевой демон. Вторая пара - socket_getpeername. Всё, больше ничего транспорт вам полезного о собеседнике не скажет.
Всё остальное - это задача прикладного уровня. И используя сырые сокеты прикладной уровень вы выбираете, придумываете и реализуете сами. Надо передать какую-то структуру - то как эту структуру сериализовать и десериализовать, идентификация - какие данные требовать передавать клиенту - это всё придумываете вы.


-----
PostgreSQL DBA
 
 Top
Рачей
Отправлено: 10 Января, 2017 - 16:46:04
Post Id


Гость


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


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




Видимо я передавал из флеша а на сервере смотрел в терминале что происходит.. Klfyj^ спасибо. Буду вспоминать что там куда и как..
 
 Top
Рачей
Отправлено: 11 Января, 2017 - 17:03:09
Post Id


Гость


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


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




Не нашел нифига... А как же там различает-то сокет кто ему прислал? Наверное передающий отправляет какой-то знак или сигнал что это типа... "эээй привет это я.." а сокет в зависимости от того кто прислал и что делает свое нужное дело
 
 Top
teddy
Отправлено: 11 Января, 2017 - 20:44:15
Post Id


Участник


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


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




Очень просто различает. Обмен данными происходит по сети. Клиент обращаясь на сервер занимает определенный порт(если не задан явно, ОС выделит один из свободных портов для клиента). Айпи клиента и порт который он занял когда соединялся с сервером и есть точка обратной связи сервера с клиентом. Но все это прозрачно для программиста, он работает лишь с дескриптором сокета своих клиентов.
 
 Top
Рачей
Отправлено: 11 Января, 2017 - 21:29:31
Post Id


Гость


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


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




А эти пакеты которые туда сюда летят легко перехватываются или нет? В смысле того что их надо шифровать или пофик?
 
 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