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
Форумы портала PHP.SU :: Версия для печати :: подключение к сокету
Форумы портала PHP.SU » » Вопросы новичков » подключение к сокету

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

1. Рачей - 10 Января, 2017 - 14:43:09 - перейти к сообщению
Запустил сокет на компе.. lsof показывает что сокет работает.. стал искать информацию как через терминал подключиться в этом сокету и отправить туда что-то что бы получить в ответ что-то ничего найти не могу.. в гугле одни вебсокеты и сокет io все бля веба.. пипец какой-то... как будь-то для терминала нет никаких команд подключения и отправки данных??? Я как-то давно рисовалку делал на флеше через сокеты.. и помню что для тестов использовал какие-то команды через терминал... но хоть убей не помню ни одной.. помогите куда копать?
2. Мелкий - 10 Января, 2017 - 14:54:23 - перейти к сообщению
nc (netcat), telnet
3. Рачей - 10 Января, 2017 - 15:40:03 - перейти к сообщению
СпасибоУлыбка на nc я уже наткнулся и все работает.. сообзщение есть о клиенте.. не найду только как там сообщение отправить.. похлду нет такого... телнет у меня почему-то не подключился... видимо я не правильно команду вводил
сейчас еще попробую
(Добавление)
Блин, ну подключаться-то он подключается и там и так... а как мне отправить ему массив переменных что бы он мне ответил и при определенном условии сокет закрылся?
4. Мелкий - 10 Января, 2017 - 16:15:24 - перейти к сообщению
Вбить ручками в нужном формате. Или перенаправить что-нибудь другое в stdin. Переменные по сети не передаются. По сети передаются байты.
Для бинарных протоколов удобнее сразу писать клиента.
5. Рачей - 10 Января, 2017 - 16:30:34 - перейти к сообщению
ну я на сколько понял можно файл отправлять... Я вот тут нашел исходник сокета который я делал

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 назад.. ничего не помню.. как мне через терминал отправить какие-нибудь байты? желательно как бы попробовать идентифицировать того кто отправляет?
6. Мелкий - 10 Января, 2017 - 16:42:49 - перейти к сообщению
Сокет - это тупо канал передачи данных, транспортный уровень OSI.
Что вы передаёте и как это используете - задача прикладного уровня. Сокет, транспортный уровень - гораздо ниже и ничего не знает о прикладном уровне, не его это дело. Дело транспорта - озаботиться передачей данных между двумя хостами и скрыть за собой все вопросы фрагментации пакетов, как и вообще пакеты данных, маршрутизацию и всю остальную нижележащую машинерию. TCP сокет идентифицируется 4 цифрами: ip и номер порта отправителя, ip и номер порта получателя. Пару из этих значений вы знаете - там запущен сетевой демон. Вторая пара - socket_getpeername. Всё, больше ничего транспорт вам полезного о собеседнике не скажет.
Всё остальное - это задача прикладного уровня. И используя сырые сокеты прикладной уровень вы выбираете, придумываете и реализуете сами. Надо передать какую-то структуру - то как эту структуру сериализовать и десериализовать, идентификация - какие данные требовать передавать клиенту - это всё придумываете вы.
7. Рачей - 10 Января, 2017 - 16:46:04 - перейти к сообщению
Видимо я передавал из флеша а на сервере смотрел в терминале что происходит.. Klfyj^ спасибо. Буду вспоминать что там куда и как..
8. Рачей - 11 Января, 2017 - 17:03:09 - перейти к сообщению
Не нашел нифига... А как же там различает-то сокет кто ему прислал? Наверное передающий отправляет какой-то знак или сигнал что это типа... "эээй привет это я.." а сокет в зависимости от того кто прислал и что делает свое нужное дело
9. teddy - 11 Января, 2017 - 20:44:15 - перейти к сообщению
Очень просто различает. Обмен данными происходит по сети. Клиент обращаясь на сервер занимает определенный порт(если не задан явно, ОС выделит один из свободных портов для клиента). Айпи клиента и порт который он занял когда соединялся с сервером и есть точка обратной связи сервера с клиентом. Но все это прозрачно для программиста, он работает лишь с дескриптором сокета своих клиентов.
10. Рачей - 11 Января, 2017 - 21:29:31 - перейти к сообщению
А эти пакеты которые туда сюда летят легко перехватываются или нет? В смысле того что их надо шифровать или пофик?

 

Powered by ExBB FM 1.0 RC1