Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: 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 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
15-1149230575
Prohodil_Mimo
2006-06-02 10:42
2006.06.25
что такое: полевая сторона?


2-1149362980
barzini
2006-06-03 23:29
2006.06.25
Дипломная. БД. Хелп.


15-1149012199
Desdechado
2006-05-30 22:03
2006.06.25
Распределенные вычисления


3-1146043801
Youta
2006-04-26 13:30
2006.06.25
Как из Делфи написать запрос, в котором необходимо использовать а


6-1139206690
DelphiN!
2006-02-06 09:18
2006.06.25
Изменить основной шлюз, альтерн. и предпочит ДНС в виндовсе