Соединение socket

  • Автор темы Автор темы sonikby
  • Дата начала Дата начала

sonikby

Новичок
Добрый день возникла проблема нужно настроить соединение по tcp через сокеты, делаю так
PHP:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $host, $port);
$response = socket_read($socket, 1024);
socket_write($socket, $login, strlen($login));
$response = socket_read($socket, 1024);
socket_write($socket, $login, strlen($password));
$response = socket_read($socket, 1024);
На втором socket_read скипт зависает, что не так?)) Логика подключения такая, сервер присылает "Login:" мы отправляем логин, если он верный сервер присылает "Password:", мы отправляем пароль, если пароль верный сервер присылает "Ok"
 
Во-первых, при чтении из сокета указанная аргументом функции длина - это максимальная, а возвращается результат, как только прилетело хоть что-нибудь.
Во-вторых, надо заняться отладкой - выведи, что отправляешь и что получаешь, и проверяй соблюдение протокола.
В-третьих, проверяй каждый вызов на ошибки.
 
Все вопрос снят, в поддержке сказали что php не поддерживает сессию и реализовать такую авторизацию через php невозможно
 
65-wat.jpg
 
Все вопрос снят, в поддержке сказали что php не поддерживает сессию и реализовать такую авторизацию через php невозможно
Скажи, а когда ты на заборе видишь слово из трёх букв, ты тоже веришь, что за ним х*и лежат штабелями?
http://lmgtfy.com/?q=что+такое+HTTP+сессия
 
Все вопрос снят, в поддержке сказали что php не поддерживает сессию и реализовать такую авторизацию через php невозможно
Спроси поддержку, а если ли у них возможность включить проксирование UDP-пакетов через двухфазный свитч? Тогда твой код заработает.
 
Скажи, а когда ты на заборе видишь слово из трёх букв, ты тоже веришь, что за ним х*и лежат штабелями?
http://lmgtfy.com/?q=что такое HTTP сессия
HTTP протокол и tcp думаю немного отличаются и HTTP сессия здесь не совсем подойдет))Проблема решилась добавлением в предыдущий код в конце логина/пароля "/n"
 
Тогда о каких сессиях вообще идёт речь, простите? TCP изначально stateful.
 
Сверху