Соединение socket

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"
 

fixxxer

К.О.
Партнер клуба
Во-первых, при чтении из сокета указанная аргументом функции длина - это максимальная, а возвращается результат, как только прилетело хоть что-нибудь.
Во-вторых, надо заняться отладкой - выведи, что отправляешь и что получаешь, и проверяй соблюдение протокола.
В-третьих, проверяй каждый вызов на ошибки.
 

sonikby

Новичок
Все вопрос снят, в поддержке сказали что php не поддерживает сессию и реализовать такую авторизацию через php невозможно
 

AnrDaemon

Продвинутый новичок
Все вопрос снят, в поддержке сказали что php не поддерживает сессию и реализовать такую авторизацию через php невозможно
Скажи, а когда ты на заборе видишь слово из трёх букв, ты тоже веришь, что за ним х*и лежат штабелями?
http://lmgtfy.com/?q=что+такое+HTTP+сессия
 

Вурдалак

Продвинутый новичок
Все вопрос снят, в поддержке сказали что php не поддерживает сессию и реализовать такую авторизацию через php невозможно
Спроси поддержку, а если ли у них возможность включить проксирование UDP-пакетов через двухфазный свитч? Тогда твой код заработает.
 

sonikby

Новичок
Скажи, а когда ты на заборе видишь слово из трёх букв, ты тоже веришь, что за ним х*и лежат штабелями?
http://lmgtfy.com/?q=что такое HTTP сессия
HTTP протокол и tcp думаю немного отличаются и HTTP сессия здесь не совсем подойдет))Проблема решилась добавлением в предыдущий код в конце логина/пароля "/n"
 

AnrDaemon

Продвинутый новичок
Тогда о каких сессиях вообще идёт речь, простите? TCP изначально stateful.
 
Сверху