Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт авг 16, 2018 17:32

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Сокеты на форке?
СообщениеДобавлено: Вт янв 04, 2011 15:13 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Смешной вопрос.
Сокеты на форке
Есть? Ожидаются? Или как?

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Вт янв 04, 2011 23:01 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Пробую вот такое:

Код:
  libs/includes.f \ здесь подключается много чего, в том числе и сокеты
   
  ALSO SOCKET \ добавляем сокеты в контекст
  SocketsStartup \ инициализация сокетов

0 VALUE SOCK1 \ для идентификатора сокета
80 VALUE PORT4soc \ для порта сокета
0100007F VALUE ADDR4soc \ для IP адреса сокета

\ первое тестовое слово для открытия сокета

: OPEN_SOC ( ... port addr u --> socket )

  IP>S TO ADDR4soc \ вычисляем и сохраняем адрес
  TO PORT4soc \ сохраняем порт
 
  CreateSocketWithTimeout
  \ CreateSocket  \ создаем сокет. Просто пустой ни с чем не соединенный сокет.
  IF ABORT" ошибка при работе с сокетом" BYE ELSE DUP TO SOCK1 ." Сокет создан с ID: " . CR THEN

  ADDR4soc ." подключаемся к IP адресу: " H. ." = "
  ADDR4soc NtoA ( IP --> addr u ) TYPE

  ."  на пoрт: " PORT4soc DECIMAL . HEX CR

  ADDR4soc PORT4soc SOCK1
  ConnectSocket ( IP port socket --> ior ) \ пытаемся установить соединение
    DUP IF ." отработал ConnectSocket с ошибкой: " DUP DECIMAL . 
    DUP 0x2743 = IF ." - Сеть недоступна" THEN \ ошибка 10051
    DUP 0x274C = IF ." - Таймаут" THEN \ ошибка 10060
    DUP 0x274D = IF ." - В соединении отказано" THEN \ ошибка 10061

  ELSE ." ConnectSocket отработал без ошибки. Соединение установлено!" DROP THEN CR

;

0x50  \ порт 80
\  s" 94.100.191.203" \ mail.ru
  s" 127.0.0.1" \ localhost
OPEN_SOC \ пробуем открывать

 


Что-то происходит неправильно
отрабатываемые ошибки - это те, что появлялись в процессе попыток достучаться хотя бы куда-нибудь.

- "Сеть недоступна" убралось, когда в касперском разрешил программе FORTH.EXE любую работу с сетью
- "Таймаут" убрался заменой CreateSocket на CreateSocketWithTimeout

- Теперь тупо: "В соединении отказано" и ни туда и ни сюда...

из консоли писал(а):
libs/socket.fts
Сокет создан с ID: 68
подключаемся к IP адресу: 0x0100007F = 127.0.0.1 на пoрт: 80
отработал ConnectSocket с ошибкой: 10061 - В соединении отказано



Боюсь, что просто XP палки в колеса втыкает... :(

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 08:06 
Не в сети

Зарегистрирован: Ср июл 05, 2006 14:44
Сообщения: 231
Благодарил (а): 0 раз.
Поблагодарили: 7 раз.
а telnet 127.0.0.1 80 дает тот же самый результат?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 08:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Цитата:
telnet 127.0.0.1 80


Ведет себя довольно странно.
когда набираю из меню виндовса "выполнить"
Открывается окошко, мелькает надпись "подключение к 127.0.0.1"
потом пустая консоль.
При попытке набрать текст - курсор двигается, а текста не видно.
Если вслепую набрать команду GET без всего, иногда проскакивает ответ

HTTP 1.1 404 Not found

и что-то еще... после чего "соединение утеряно" и окно просто закрывается

Если набрать в строке команды винкомандера
окошко телнета появляется и закрывается сразу... не успеваю прочитать, что пишет...
В первой строчке тоже проскакивает "подключение к 127.0.0.1"

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 09:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Так... добился того, что ответы не пропадают... запуская telnet из-под cmd.exe

Это ответ на команду
>telnet 94.100.191.203 80
( IP-адрес сервера mail.ru )
Цитата:

HTTP/1.0 400 Bad request
Date: Wed, 05 Jan 2011 04:59:55 GMT
Server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0
.7 Ruby/1.6.8 mod_mrim/0.17
Connection: close
Content-Type: text/html

<HTML><BODY>Bad request</BODY></HTML>

Подключение к узлу утеряно.

ответ на:
>telnet 127.0.0.1 80
Цитата:
Подключение к 127.0.0.1...Не удалось открыть подключение к этому узлу, на порт 8
0: Сбой подключения


При первой попытке дать команду telnet 127.0.0.1 80
Из под cmd.exe еще и eserv (который у меня постоянно включен) повесился, объявляя, что лицензия expired...
Сейчас попробую перезагрузиться и посмотреть, что он снова скажет...
Раньше он тоже иногда вываливался из-за отсутствия лицензии, но потом снова "работал" в кавычках, потому что ненормально работал, только на локальном компе виден http://localhost/

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 09:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Tak, теперь telnet 127.0.0.1 80 из-под cmd.exe
на пустой запрос GET выдает:

Цитата:
HTTP/1.1 404 Not Found
Content-Type: text/plain

Not Found


Подключение к узлу утеряно.

При этом браузер нормально видит страничку
http://127.0.0.1/ которая у меня на eserv-е настроена.
И eserv больше не вешался (eserv/2.99)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 10:30 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Нашел, как правильно делать GET запрос!

команда telnet mail.ru 80
и дальше ввожу
GET / HTTP/1.0
после этого выдает html-код начальной страницы mail.ru
(о-очень длинный код)

на telnet 127.0.0.1 80
эта же команда отдает index.htm что у меня в eserv-е записана

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 12:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Eще одно "достижение"

код
Код:
~ac/lib/win/winsock/Psocket.f

: TEST
  { \ s }
  SocketsStartup THROW
  " localhost" 80 fsockopen -> s
" GET / HTTP/1.0
Connection: close

" s fputs
  20 0 DO s fgets STYPE CR LOOP
  s fclose
;
TEST


в SPF4.18 отработал корректно и выдал текст из index.html лежащем в корне localhost-а

Т.е. винда у меня никак не мешает работе с сокетами.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 12:35 
Не в сети

Зарегистрирован: Ср июл 05, 2006 14:44
Сообщения: 231
Благодарил (а): 0 раз.
Поблагодарили: 7 раз.
О как раз хотел порекомендовать этот примерчик из спфа попробовать, но
не успел добраться и посмотреть где он там лежит :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сокеты на форке?
СообщениеДобавлено: Ср янв 05, 2011 19:52 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4926
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
WingLion писал(а):
Сокеты на форке
Есть? Ожидаются? Или как?

смешной ответ: будут!

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB