|
|
|
(PHP) Подключение к серверу через TCP
|
|||
|---|---|---|---|
|
#18+
Уважаемые знатоки, нужна ваша помощь. Мне необходимо разработать клиента, который будет подключаться к серверу через TCP канал и соответственно отсылать один или несколько пакетов и получает по ним ответы. Если обмен произошел удачно, то пользователю сообщается об удаче. Если в какой-то момент произошел сбой связи или ПО, то сообщается о неудачи. Сообщения представляют из себя куски текста в кодировке KOI-8, завершенные символом разделения пакетов с ASCI кодом 0x03. Я так думаю это надо реализовывать с помощью сокетов? Обратился к официальной документации, но информации содержащейся там, явно для меня не достаточно, потому что чего-то подобного я ранее не делал. Буду очень в помощи по решению данного вопроса.... Я набросал примерный алгоритм работы данной программы(поправьте если что не так): 1)Инициализируем соединение 2)Если все удачно, то идем дальше, иначе сообщаем об ошибке 3)Посылаем данные – проверяем отправились или нет, если нет повторяем отправку 4)Прослушиваем(ждем ответа) – получаем ответ 5)Закрываем соединение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 12:40 |
|
||
|
(PHP) Подключение к серверу через TCP
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 12:45 |
|
||
|
(PHP) Подключение к серверу через TCP
|
|||
|---|---|---|---|
|
#18+
LittleBuddaОбратился к официальной документации, но информации содержащейся там, явно для меня не достаточно, потому что чего-то подобного я ранее не делал.Там туева хуча примеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 12:46 |
|
||
|
(PHP) Подключение к серверу через TCP
|
|||
|---|---|---|---|
|
#18+
Просто в официальной документации я смотрел раздел Socket Functions, там описаны несколько другие примеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 14:34 |
|
||
|
(PHP) Подключение к серверу через TCP
|
|||
|---|---|---|---|
|
#18+
Хотелось бы узнать, есть ли принципиальная разница между следующими двумя реализациями моего вопроса и какой вариант лучше использовать: Реализация №1 <?php //устанавливаем IP $host_ip="192.168.90.1"; //Устанавливаем порт для подключения $host_port=4800; // Создание сокета $s=socket_create(AF_INET, SOCK_STREAM, 0); // Подключение if (!($res=@socket_connect($s, $host_ip, $host_port))) die("Can' connect to local host"); // В $str текст для отправки $str="USER RRR\n"; // Отправить текст socket_write($s, $str, strlen($str)); // Распечатать результат чтения из сокета printf("<P><%s", socket_read($s, 1000, PHP_NORMAL_READ)); ?> ============================================= Реализация №2 <?php $fp = fsockopen("192.168.90.1", 4800, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "USER RRR\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> ============================================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2005, 14:00 |
|
||
|
(PHP) Подключение к серверу через TCP
|
|||
|---|---|---|---|
|
#18+
Функция fsockopen доступна всегда (если не запрещена специально - но в этом случае вам скорее всего вообще не будут доступны внешние соединения), поскольку она является частью ядра PHP, в то время как для использования sockets необходимо правильно скомпилировать (или подключить соответствующий модуль). По крайней мере в данном вами примере никаких преимуществ использование sockets не даёт, а определённые ограничения на использование - накладывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2005, 14:20 |
|
||
|
|

start [/forum/topic.php?fid=23&tid=1477227]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 475ms |

| 0 / 0 |
