Forum Webscript.Ru

Программирование => PHP => Тема начата: F.A.K.K.2 от 16 Мая 2003, 14:33:05

Название: Использование сокетов
Отправлено: F.A.K.K.2 от 16 Мая 2003, 14:33:05
Люди, кто нить может мне объяснить что такое сокеты и счем их едят?
Или где про них почитать? А то в поисковиках сокеты на Перле объясняют...
Название: Использование сокетов
Отправлено: FILA от 16 Мая 2003, 15:37:26
сокет - это комбинация IP адреса и номера порта, которая однозначно определяет отдельный сетевой процесс в Сети.
Два сокета, один для хоста-получателя, другой для хоста-отправителя, определяют соединение для протоколов, ориентированных на установление связи, таких, как TCP и иже с ним....
и т.д.
Название: Использование сокетов
Отправлено: Ancient от 16 Мая 2003, 23:32:02
Можно сказать что сокет это стандартный поток (в unix как обычный файл). Если говорить грубо, обеспечивает передачу сообщение от одного узла к другому.

Я бы тебе посоветовал msdn почитать. Язык реализации не имеет значения...
Название: Использование сокетов
Отправлено: F.A.K.K.2 от 17 Мая 2003, 18:03:52
Спасибо всем.
Не могли бы вы подсказать, чем можно просмотреть что браузер шлет серверу и что тот отвечает?
Название: Использование сокетов
Отправлено: FreeSpace от 17 Мая 2003, 19:16:22
Есть такая программа - HTTP Interceptor.
Вот она тебе все заголовки покажет и все данные в Raw виде (как есть).
А ещё лучше почитать RFC на эту тему.
Название: Использование сокетов
Отправлено: F.A.K.K.2 от 18 Мая 2003, 14:41:12
Спасибо всем!
Люди, я вот решил применить знания выдранные с помощью Interceptor.
$url = parse_url("http://www.shevahmofet.org");
$fp = fsockopen ($url["host"], 80, $errno, $errstr, 30);

$header=\'GET / HTTP/1.0\\r\\n
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-gsarcade-launch, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\\r\\n
Accept-Language: en-us\\r\\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)\\r\\n
Host: http://www.shevahmofet.org\\r\\n
Connection: Close\\r\\n\\r\\n\';
    fputs($fp, $header);
    $buffer = "";
    while (!feof($fp)) {
        $buffer=fgets ($fp, 2048);
    }
fclose($fp);

Команды HTTP изъяты их Internet Explorer.
Но этот скрипт стопорится на чтении ответа сервера:        $buffer=fgets ($fp, 2048);

Просто ждет, ждет, а потом вылетает с сообщением что скрипт слишком долго работал:(
В чем проблема?
Я так думаю, я не правильные команды шлю, хотя вроде у IE это получается.

Благодарю за ответы
Название: Использование сокетов
Отправлено: FreeSpace от 18 Мая 2003, 16:08:12
$header = \'...\' замени на $header = "..."
Одинарные кавычки не ловят спецсимволы типа \\n и \\r
Ещё, в Accept поставь просто */* если не знаешь, зачем он нужен. Или вообще его убери.
Connection: Close можешь убрать.
Название: Использование сокетов
Отправлено: F.A.K.K.2 от 18 Мая 2003, 18:51:58
FreeSpace
БААльшое спасибо!!!!!:)
Ты меня спас!
Название: Использование сокетов
Отправлено: F.A.K.K.2 от 18 Мая 2003, 20:06:36
Помогите ещё раз:)
При запросе POST в каком месте я отсылаю сами данные.
т.е.
POST /check.pl HTTP/1.0\\r\\n

куда я вставляю строку:
name=aaa&psw=bbb ?
Сразу после POST или в самом конце хедера?
Название: Использование сокетов
Отправлено: Ancient от 09 Июня 2003, 07:56:29
POST тем и отличается, что нет там такой строки. Переменные передаются в таком виде:

var1=value1
var2=value2
....
varN=valueN

Фактически формат POST имеет стандартный вид:

Начальная строка
Заголовок1
...
Заголовок2
CR LF
Тело сообщения

POST /sql.exe HTTP/1.0
Content-Type: text/html
Content-Lenght: n bytes

SELECET * FROM TABLE