
14.05.2010, 12:52
|
|
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
С нами:
9207335
Репутация:
21
|
|
Многопоточность и Winsock
Делаю так, это часть кода.
-----Шапка------
procedure Tpotok.Execute;
var
WSAData1: TWSAData;
SockAddr1:TSockAddr;
Socket1: TSocket;
Buffer1,html,html2,buf:string;
Buffer2:array[1..1024] of char;
d:integer;
begin
if WSAStartup(MAKEWORD(2,2), WSAData1)<>0 then begin
------------------------
end;
SockAddr1.sin_family:=AF_INET;
SockAddr1.sin_addr.S_addr:=inet_addr(PChar('----------'));
SockAddr1.sin_port:=htons(80);
Socket1:=Socket(AF_INET,SOCK_STREAM,0);
if Socket1=INVALID_SOCKET then begin
----------------------------------------------
end;
if Connect(Socket1,SockAddr1,SizeOf(SockAddr1))<>0 then begin
--------------------------------------
end;
Buffer1:='GET --------------------';
htmlcod:='';
html2cod:='';
repeat
FillChar(Buffer2,SizeOf(Buffer2),0);
d:=recv(Socket1,Buffer2,SizeOf(Buffer2),0);
htmlcod:='';
for i:=1 to d do htmlcod:=htmlcod+Buffer2[i];
html2cod:=html2cod+htmlcod;
until d<=0;
responseres.Text:=utf8toansi(html2cod);
end;
Запуская как положенно потоки.
НО такое чувство что потоки работают по очереди, а не одновременно.
Может я че не так сделал??
Тоже самое делал через инди, видно что потоки работают вместе.
Или я уже гоню и мозг мой взорвался при изучение winsock =))
|
|
|