Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для wtf bro
8 / 8 / 1
Регистрация: 30.07.2013
Сообщений: 162

Приём данных из ПК

30.09.2013, 18:31. Показов 1368. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я немногожко запутался, и не знаю как реализовать следующее:

Клиент который находится на ПК отправляет запрос на скрипт (пускай будет index.php). Мне нужно принять следующее: TaskID и IP. Клиент TaskID отправляет, как мне его принять? И как получить IP именно из сессии этого соединения?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2013, 18:31
Ответы с готовыми решениями:

Приём данных с ПК
Не могу я всё таки организовать приём данных с ПК по протоколу HTTP Цель: Принять данные и занести их в файл (любой) Нюансы:...

Приём POST данных
Как сделать чтобы если принимаемой значение q=1 то показано поле для ввода текста, а если q=2, то показана кнопка?

QSerialPort приём данных
Как правильно организовать прием. Я хочу сделать так чтобы 1 пакет из 8 байтов отображался в таблице в одной строке, а не так как сейчас...

13
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
02.10.2013, 16:41
Ну вот как он отправляет, так и получайте, Вы же не сообщаете деталей, Вам не помогут...
Может это RPC, http, или просто сокетное соединение...
В каждом из них есть ещё куча способов отправить, например для http это POST, GET, ...
Цитата Сообщение от wtf bro Посмотреть сообщение
И как получить IP именно из сессии этого соединения?
А как из сессии можно получить ИП другого соединения?
1
 Аватар для wtf bro
8 / 8 / 1
Регистрация: 30.07.2013
Сообщений: 162
02.10.2013, 18:37  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Ну вот как он отправляет, так и получайте, Вы же не сообщаете деталей, Вам не помогут...
Может это RPC, http, или просто сокетное соединение...
В каждом из них есть ещё куча способов отправить, например для http это POST, GET, ...

А как из сессии можно получить ИП другого соединения?
Ой, блин, точно. Всё в спешке писал и ничего не написал по сути

Использоваться будут сокеты. Так как я передаю на PHP условные слова, а клиент будет что-то делать, согласно этим словам. То есть, приём данных через сокеты

IP. Его я намерен подучать когда клиентская машина будет обращается к скрипту
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
02.10.2013, 18:47
То есть у вас будет крутиться сервер, и слушать сокет?
Значит вы должны придумать протокол общения клиент-сервера.
Или использовать существующий, типа jabber, и прочих...
Вот в зависимости от протокола, клиент и передаёт данные.
Если это просто 2 числа, то можно простой бинарный поток данных слать. То есть подряд 4 байта TaskID и 4 байта IP. Ну и следовательно так же по 4 байта получать.

Цитата Сообщение от wtf bro Посмотреть сообщение
IP. Его я намерен подучать когда клиентская машина будет обращается к скрипту
Так вот в том то и дело, Вы спрашиваете как получить ИП именно этого соединения.
А как Вы получите ИП другого соединения?) Не как
У Вас и будет входящий ИП это именно для этого соединения.
http://www.php.net/manual/ru/f... ername.php
1
 Аватар для wtf bro
8 / 8 / 1
Регистрация: 30.07.2013
Сообщений: 162
02.10.2013, 18:57  [ТС]
Стандарт есть. Да, будет у меня крутится сервер на PHP и будет постоянно слушать определённый порт. Я просто саму технику не могу понять, ну, если это http, то просто $_POST['TaskID']; и $_SERVER["REMOTE_ADDR"]; всё. А как это реализовать на сокетах? как принять данные через сокеты? Я этого не знаю

IP не будет предаваться клиентской машиной
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
02.10.2013, 19:08
Цитата Сообщение от wtf bro Посмотреть сообщение
$_SERVER["REMOTE_ADDR"]
Цитата Сообщение от wtf bro Посмотреть сообщение
IP не будет предаваться клиентской машиной
может стоило открыть ссылку http://www.php.net/manual/ru/f... ername.php
которую я дал выше
И почитать о TCP и протоколах передачи данных?
И посмотреть что там уже за вас сделана передача IP. Как вы думаете, откуда попадают данные в $_SERVER["REMOTE_ADDR"]?
Думаете их браузер сам шлёт?

Цитата Сообщение от wtf bro Посмотреть сообщение
то просто $_POST['TaskID'];
Ну так а туда данные как попадают?
Так же парсятся из полученных байт в сокет.

http://www.php.net/manual/ru/f... t-recv.php
http://www.php.net/manual/ru/f... t-read.php
http://www.php.net/manual/ru/sockets.examples.php
В офф доке готовый код есть и клиента и сервера и примеры чтения и отправки данных.

Клиент шлёт например 4 байта, значит сервером ждите эти 4 байта и читайте их.
1
 Аватар для wtf bro
8 / 8 / 1
Регистрация: 30.07.2013
Сообщений: 162
02.10.2013, 22:20  [ТС]
Читал. Не знаю понял я это или нет

Но маломальский что-то начинает мне доходить. Из всего я понял, что мне нужно что бы сервер "включался" тогда, когда на него поступают данные, а не я его запускал вручную сам
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
02.10.2013, 22:42
Нет. Сервер должен быть включен всегда. Он должен слушать сокет.
Как только подключился новый сокет, можно получить IP и читать данные.
Есть ещё нюансы с блокирующими и не блокирующими сокетами.
Вообщем Вам нужно знать размер пришедших данных или формат в котором они отправляются.
0
 Аватар для wtf bro
8 / 8 / 1
Регистрация: 30.07.2013
Сообщений: 162
04.10.2013, 00:16  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Нет. Сервер должен быть включен всегда. Он должен слушать сокет.
Как только подключился новый сокет, можно получить IP и читать данные.
Есть ещё нюансы с блокирующими и не блокирующими сокетами.
Вообщем Вам нужно знать размер пришедших данных или формат в котором они отправляются.
Понял немного. А так, чисто для размышления, если бы передача была основана на POST запросах, то есть, передаются всё те же данные, и нужно всё то же, то приём данных как будет происходить согласно протоколу HTTP, как должен быть организован приём данных?

Банально, использовать всё тот же глобальный массив $_POST['']; для приёма данных, или для этого есть что-то другое

Добавлено через 14 минут
для связи клиент-серверного приложения, где клиент - это ПК
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
04.10.2013, 01:58
http - это протокол по верх tcp.
для его обработки ставят вэб сервер.
если вы хотите запустить сервер на пхп, значит он будет принимать голые данные на свой сокет.
значит в пхп нужно реализовать парсинг http протокола.
не вижу не одного плюса использовать http протокол при обычном сокетном соединение, только лишние тормоза и трафик.
1
 Аватар для wtf bro
8 / 8 / 1
Регистрация: 30.07.2013
Сообщений: 162
05.10.2013, 01:51  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
http - это протокол по верх tcp.
для его обработки ставят вэб сервер.
если вы хотите запустить сервер на пхп, значит он будет принимать голые данные на свой сокет.
значит в пхп нужно реализовать парсинг http протокола.
не вижу не одного плюса использовать http протокол при обычном сокетном соединение, только лишние тормоза и трафик.
Так всё и есть, парсинг будет. Вся суть такого (моего) сервера заключается в том, что я просто принимаю данные, когда я их принял, я отсылаю ответ (команду), клиент понимает эту команду и выполняет действия согласно команде
0
117 / 117 / 0
Регистрация: 27.09.2013
Сообщений: 710
05.10.2013, 03:06
Цитата Сообщение от wtf bro Посмотреть сообщение
Я немногожко запутался, и не знаю как реализовать следующее:
Клиент который находится на ПК отправляет запрос на скрипт (пускай будет index.php). Мне нужно принять следующее: TaskID и IP. Клиент TaskID отправляет, как мне его принять? И как получить IP именно из сессии этого соединения?
Вам на PHP придется писать сервер, который висит как процесс и ожидает соединения на определенном порту, Но, PHP для этих целей не лучший вариант.

Как будут посылаться данные на ваш "виртуальный" сервер? По какому протоколу и какой программой.
И почему бы просто не использовать уже готовый сервер, например Apache + PHP? А протокол HTTP
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
05.10.2013, 03:14
Цитата Сообщение от PetyaVasechkin Посмотреть сообщение
PHP для этих целей не лучший вариант.
Полностью согласен. Но и не худший.
Цитата Сообщение от PetyaVasechkin Посмотреть сообщение
Apache + PHP?
Вот этот вариант гораздо хуже чем демон на пхп.
апач очень много ресурсов жрёт + пхп нужно запускаться каждый раз при приёме данных

Цитата Сообщение от PetyaVasechkin Посмотреть сообщение
А протокол HTTP
Клиенте передаёт ID, как правило это число, чаще всего 4 байта.
Протокол HTTP, для передачи 4 байт, сожрёт байт 40, а может и больше.
+ к этому апач на запуск пхп скрипта потратит прилично ресурсов.
Как не крути, отдельно пхп висящий как демон и простой поток рав байт гораздо лучше.
0
117 / 117 / 0
Регистрация: 27.09.2013
Сообщений: 710
05.10.2013, 03:20
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Как не крути, отдельно пхп висящий как демон и простой поток рав байт гораздо лучше.
Да, я полностью согласен!

Добавлено через 4 минуты
тогда какие тут варианты ... socket - ы и обработка данных. Ну и про безопасность стоит подумать.
А ещё варианты с одновременным доступом. Там могут быть нюансы.

Так же возможно почитать про порождение процессов в PHP и той операционки в которой будете работать.
Это если, демон будет порождать дочерние процессы в которых будет происходить обработка данных.

Но, помоему, тут все проще.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2013, 03:20
Помогаю со студенческими работами здесь

Приём данных из com-порта
Доброго дня! Помогите решить проблему! В VB я новичок. Хочу разобраться в работе с ком портом. написал следующую программку: Private...

Приём данных с COM-порта
На COM-порт компьютера приходят сообщения неизвестной заранее длины. Получить принятое сообщение пытаюсь в обработчике события...

RS232 приём данных
на ком порт приходят 10ричные числа, от 1 до 9 со знаком ? в начале т.е. (?1) (?2), итд ? означает начало приёма этот код должен ...

Приём данных с COM порта
Добрый день! У меня вот имеется код на Qbasic, никак не соображу как правильно перевести его на VB .net. Помогите кто-нибудь. Пытался...

Сокеты, приём данных
В общем написал более-менее работающий клиент и сервер общающиеся между собой на асинхронных сокетах. До этого с сокетами не сталкивался....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru