![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день. решил попробовать сокеты.
такой код: Код:
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Host := '127.0.0.1'; (*тут веб-сервер*) ClientSocket1.Port := 80; ClientSocket1.Open; (*специально для проверки дописал вот это*) if ClientSocket1.Active = True then Label1.Caption:='IT OPEN'; (*лейбл показывает что сокет не запустился, не активный*) end; procedure TForm1.Button2Click(Sender: TObject); begin ClientSocket1.close; end; Пробовал в режиме трассировки. доходит до Button1Click - и ничего. а вот Button2Click нормально проходит трассировку пробовал далее ClientSocket1.Socket.SendText('GET /index.php HTTP/1.1'#13#10); по ClientSocket1Connect и далее Memo1.Lines.Add(Socket.ReceiveText), но конечно ничего не вышло, поскольку метод OPEN не работает? Вопрос: может что не так в синтксисе? все примеры из Д7 |
#2
|
||||
|
||||
![]() А браузер то страницу http://127.0.0.1/ открывает?
![]() Трассировка в OnConnect входит? Если да, то запрос не до конца отправляешь, вот и нету ответу. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 26.09.2012 в 00:01. |
#3
|
||||
|
||||
![]() потому что по умолчанию ClientType == ctNonBlocking, т.е. не блокирующий (асинхронный) сокет. каждая операция завершается с уведомлением по соответствующему событию. Open - OnConnect (если, конечно, успешно), принятые данные - OnRead...
Код:
ClientSocket1.ClientType:=ctBlocking; ClientSocket1.Host:='ya.ru'; ClientSocket1.Port:=80; ClientSocket1.Open; if ClientSocket1.Active then Caption:='Active'; ClientSocket1.Socket.SendText('GET / HTTP/1.0'#13#10#13#10); Sleep(2500); Memo1.Text:=ClientSocket1.Socket.ReceiveText; Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 26.09.2012 в 08:18. |
#4
|
|||
|
|||
![]() браузер конечно страницу открывает
до OnConnect вообще дело не доходит, метыд OPEN не работает |
#5
|
|||
|
|||
![]() Цитата:
все то же самое. не работает. при трассировке доходит до открытия формы, нажимаю на форме батон1 - ничего. нажимаю батон2 - переходить на код обрабоки |
#6
|
||||
|
||||
![]() Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() у меня вообщето РАД2010 а не Д7
видимо что то не включено или чего еще надо кроме как установить TClientSocket?? косячок явно системный а не в коде |
#8
|
|||
|
|||
![]() все получилось по простому:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ClientSocket1.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin ClientSocket1.Create(nil); end; |
#9
|
||||
|
||||
![]() и ведь не на один форум это написал.
Пишу программы за еду. __________________ |
#10
|
|||
|
|||
![]() Прямо вот так и написал?
Код:
procedure TForm1.FormCreate(Sender: TObject); begin ClientSocket1.Create(nil); end; А не вот так? Код:
procedure TForm1.FormCreate(Sender: TObject); begin ClientSocket1 := TClientSocket.Create(nil); end; |
#11
|
|||
|
|||
![]() тем не менее, кто бы что не кукарекал, в РАД2010 и выше только так и работает:
1. нужно создать 2. использовать 3. уничтожить остальное детали |