Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

06.02.2010, 17:30
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Код:
function fWSRecv():string;
var
hSocket: TSocket;
hHost: PHostEnt;
hAddr: TSockAddrIn;
hTimeout: TTimeVal;
samzapros,kuda:string;
begin
kuda:='localhost';
samzapros:='GET /log/ass.php' + #13#10 +
'Host: localhost' + #13#10 +
'User-Agent: Mozilla/5.0' + #13#10 +
'Accept: text/html' + #13#10 +
'Accept-Language: ru' + #13#10 +
'Accept-Charset: windows-1251' + #13#10 +
'Connection: close' + #13#10#13#10;
hSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
hHost := gethostbyname(PChar(kuda));
hAddr.sin_family := AF_INET;
hAddr.sin_port := htons(80);
hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
hTimeout.tv_usec := 0;
hTimeout.tv_sec := mstimeout;
while true do begin
setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));
connect(hSocket, hAddr, SizeOf(hAddr));
Send(hSocket, samzapros[1], length(samzapros), 0);
CloseSocket(hSocket);
sleep(2000);
end;
end;
Ну никак не понятно где тут ошибка.
Я взял в цикл именно ту часть, которая собственно и отвечает за отправку данных на сервер, остальная часть до цикла на мой взгляд всего-лишь назначение переменых, помоему достаточно всего 1 раз их назначить и все...
Если ошибаюсь поправьте.
А данный код отсылает всего 1 запрос, после чего программа просто виснет и все.
Если же в цикле взять весь код, то начинает слать как и положенно через 2 секунды, и открывать множество соединений, для 2 секунд он открывает 5 штук. через 5 секунд ещё 4 штуки и т.д....
Что то мне подсказывает, что команды CloseSocket(hSocket); вовсе не достаточно, надо видимо закрывать что то ещё.. но что???
Последний раз редактировалось Nightmarе; 06.02.2010 в 17:35..
|
|
|

06.02.2010, 21:22
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
код абсолютно рабочий!
а если он не работает у тебя. значит проблема на твоей стороне!
Код:
function fWSRecv(wHost, wRequest: string):string;
var
hSocket: TSocket;
hHost: PHostEnt;
hAddr: TSockAddrIn;
hTimeout: TTimeVal;
begin
hSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
hHost := gethostbyname(PChar(wHost));
hAddr.sin_family := AF_INET;
hAddr.sin_port := htons(80);
hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
hTimeout.tv_usec := 0;
hTimeout.tv_sec := 0;
setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));
connect(hSocket, hAddr, SizeOf(hAddr));
Send(hSocket, wRequest[1], length(wRequest), 0);
CloseSocket(hSocket);
end;
|
|
|

06.02.2010, 21:57
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
мдя... я про циклы говорю а не про сам код.
конечно сам по себе функция рабочая.
ну ладно, никто не может помочь спс. сам разберусь как время будет.
|
|
|

08.02.2010, 22:21
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Как закрыть form1, и открыть form2?
Требуется сделать from2 главной, но как?
Если написать:
Код:
Form1.Close;
form2.Show;
То программа закроется, т.к. закрылось главная форма
А если так:
Код:
form2.Show;
Form1.Close;
То первая форма не закроется...
Последний раз редактировалось НTL; 08.02.2010 в 22:23..
|
|
|

08.02.2010, 22:26
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 62
Провел на форуме: 1776253
Репутация:
106
|
|
мб
Код:
form1.hide;
form2.show;
|
|
|

08.02.2010, 22:33
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
А закрыть не как?
|
|
|

08.02.2010, 23:15
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от НTL
А закрыть не как?
мб изменять свойство visible?
|
|
|

08.02.2010, 23:27
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
Требуется сделать from2 главной, но как?
Project -> Options -> main form
|
|
|

09.02.2010, 00:05
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Сообщение от [stranger]
Project -> Options -> main form
А в ходе выполнение кода можно сменить? (Программным способом)
|
|
|

09.02.2010, 00:16
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Сообщение от НTL
А в ходе выполнение кода можно сменить? (Программным способом)
Не могу утверждать, но я ни разу не встречал такого способа. Да и подумать - в приложении есть родительская форма. Если ее закрыть - то все приложение закроется.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|