Отправка данных с помощью HTTP-запроса GET для сервера Ubuntu в TCP

Я использую промышленный модем (Erco & Gener) для отправки данных в php веб-страницу, размещенную на сервере человечности. На стороне сервера Ubuntu моя веб-страница отвечает правильно на запрос HTTP через URL следующего формата:

http://xxx.xxx.xxx.xxx:80/testercogener.php?id=i&time=t

Когда я проверяю базу данных по серверу человечности, в mysql инструменте базы данных все смотрит хорошо, я получаю свою новую строку.

На модеме я соединяюсь с сервером с помощью протокола TCP в сети GPRS.

Мои отправленные данные имеют форму:

"GET /testercogener.php?id=%i&t=%t HTTP/1.1\\r\\nHost:xx.xxx.xxx.xxx\\r\\nConnection:close\\r\\n\\r\\n","H"

в соответствии с рекомендациями Erco & Gener для синтаксиса (дважды \\ для \). Хост и порт вводятся также с помощью другой функции в модеме.

Это - журнал, полученный на последовательном интерфейсе модема Erco & Gener:

00:12:29  open socket OK (5)
00:12:29  Gprs_Call_State : GPRS_CALL_TCP_CONNECTION_START
00:12:30  Gprs_Call_State : GPRS_CALL_TCP_CONNECTION_IN_PROGRESS
00:12:30  RECV_STATE_INIT from RECV_STATE_CLOSE
00:12:30  RECV_STATE_RECV from RECV_STATE_INIT
00:12:54  close connection
00:12:54  Gprs_Call_State : GPRS_CALL_TCP_DISCONNECT_START
00:12:54  b_close_session:0  b_reopen_socket:1  state_send:0 NO_ERR_SEND  state_recv:6 Operation now in progress (310)
00:12:54  Gprs_Call_State : GPRS_CALL_TCP_DISCONNECT_CLOSE_SESSION

Вот мой вопрос: Поскольку это надеется быть отправленным правильно (NO_ERR_SEND), существует ли путь или инструмент на сервере человечности, чтобы проверить, был ли сокет правильно открыт на стороне сервера человечности и что было получено на ее стороне?

На XAMPP на окнах у меня был идеальный инструмент Netstat для проверки всего сокета, открытого и закрытого и дополнительный красивый файл журнала каждого ДОБИРАЕМОГО или POST, но у меня ничего нет такой на человечности.

Я предполагаю, что это не проблема управления доступом, поскольку я могу сделать правильную операцию с помощью URL на любом веб-браузере от любой машины.

0
задан 21 February 2015 в 14:55

1 ответ

Посмотрите на доступ, входят в систему /var/log/apache2/access.log. Журнал доступа перечисляет не только IP-адрес, метку времени, и фактический запрос, но также и агент пользователя. Это может дать признак того, куда запросы прибывают из, если IP-адрес не сужает его вниз достаточно. Кроме того, 408 ошибок означают, что клиент инициировал соединение с сервером, но на самом деле не отправил запрос в течение соответствующего времени. Трудно сказать, где синхронизированные соединения происходят. Если эти error.log больше не дает сигналы, Вы могли бы работать tcpdump на сервере для наблюдения то, что другой трафик выполняет между сервером и клиентом. В любом случае сервер не отклоняет соединение. Система TCP позволяет" трехстороннее квитирование ", относительно которых уведомляется веб-сервер, но после этого, ничего не происходит.

клиент должен закрыть запрос с пустой строкой. Это сигнализирует к серверу, что запрос завершен и что сервер может начать отвечать. Connection: close заголовок сигнализирует к серверу, что это может закрыть соединение (на уровне TCP). Иначе соединение просто испытает таймаут. Заголовок Соединения является дополнительным.

0
ответ дан 3 August 2019 в 15:03

Другие вопросы по тегам:

Похожие вопросы: