Вниз
Скачать: CL | DM;

Правильно ли работаю с массивом сокетов?   Найти похожие ветки 

← →
Новичоккк   (2006-06-02 17:04) [0]

Асинхронные сокеты. Вот код:

 Socks: array of record
     sock:TClientSocket;
     msg:string;
     answer:string;
     end;
...
procedure TfrmMain.SockRead(Sender: TObject; Socket: TCustomWinSocket);
var
c:TClientSocket;
tag:integer;
str:string;
begin
c:=(Sender as TClientSocket);
tag:=c.Tag;
str:=Socket.ReceiveText;
if str="welcome" then socket.SendText(Socks[tag].msg) else
   begin
    Socks[tag].answer:=str;
    c.Active:=false;
    c.Close;
   end;
end;
...
procedure TfrmMain.Action;
const
THREADS=5;
var
i:integer;
begin
SetLength(socks,THREADS);
for i:=0 to THREADS-1 do
   begin
    Socks[i].sock:=TClientSocket.Create(nil);
    with Socks[i].sock do
       begin
        address:="127.0.0.1";
        port:=13579;
        clienttype:=ctNonBlocking;
        tag:=i;
        onRead:=SockRead;
       end;
    Socks[i].msg:="sock#"+IntToStr(i);
    Socks[i].answer:="";
    Socks[i].active:=true;
   end;
end;

Первый раз пытаюсь написать сетевое приложение. Всё правильно?


← →
Piter ©   (2006-06-02 17:10) [1]

Интересно... А почему в потрепаться? :))))

Предлагаю оставить только одну конференцию :))


← →
Новичоккк   (2006-06-02 17:19) [2]

Дело в том, что в другие (по крайней мере в "Сети"), почти никто не заглядывает


← →
StriderMan ©   (2006-06-02 17:30) [3]

а разрушать кто будет сокеты после использования? либо разрушай явно при помощи .Free либо указывай .Create(Self), тока форма при закрытии их поубивает, но так при каждом выполнении Action будут новые сокеты плодиться


← →
Piter ©   (2006-06-02 18:38) [4]

Новичоккк   (02.06.06 17:19) [2]
Дело в том, что в другие (по крайней мере в "Сети"), почти никто не заглядывает


судя по количество ответа в ветках - ты не прав.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.04 c
2-1149601035
leito
2006-06-06 17:37
2006.06.25
Вывод в EXCEL


2-1149659506
Adrea
2006-06-07 09:51
2006.06.25
Графика


2-1149429896
Krants
2006-06-04 18:04
2006.06.25
SQL запросы


2-1149687624
mfender
2006-06-07 17:40
2006.06.25
TWebBrowser: перехват собитий (OnMouseDown)


15-1149178238
Зм1й
2006-06-01 20:10
2006.06.25
Принтер Epson Photo R800




   Наверх