Форум: "Сети";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];
ВнизОтправка данных через сокет в отдельном потоке Найти похожие ветки
← →
_DATA_ (2008-04-08 08:54) [0]Есть событие TServerSocket-a OnClientRead
type
TSendStreamParam = record
Socket: TCustomWinSocket;
Stream: TStream;
end;
var
SendStreamParam: TSendStreamParam;
SendStreamCriticalSection: TCriticalSection;
procedure TMain.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Stream: TStream;
begin
...
SendStream(Socket,Stream);
...
SendStream(Socket,Stream);
...
Socket.Close;
Socket.Free;
end;
procedure SendStream(Socket: TCustomWinSocket; Stream: TStream);
var
c: Cardinal;
begin
SendStreamParam.Socket := Socket;
SendStreamParam.Stream := Stream;
BeginThread(nil,SizeOf(SendStreamParam),@SendS,@SendStreamParam,0,c);
end;
procedure SendS(Par: Pointer);
var
i: integer;
buff: array[0..65536] of byte;
p: ^TSendStreamParam;
Socket: TCustomWinSocket;
begin
try
SendStreamCriticalSection.Enter;
try
p := Par;
p.Stream.Position:=0;
repeat
i:=p.Stream.Read(buff,SizeOf(buff));
while p.Socket.SendBuf(buff,i)=-1 do
until i=0;
p.Stream.Free;
except
//
end;
finally
SendStreamCriticalSection.Leave;
end;
end;
Однако к тому времени когда последний(дочерний) поток начинает отправлять данные через сокет основной поток этот сокет уже закрывает. Как разрешить ситуацию?
← →
Сергей М. © (2008-04-08 09:06) [1]
> _DATA_ (08.04.08 08:54)
Шифруешься, DelphiN ?)
Вот же твоя ветка:
http://delphimaster.net/view/1-1207564254/
Сначала исправь указанное там безобразие, потом дальше поедем)
← →
DelphiN! (2008-04-08 09:40) [2]
> Сергей М. © (08.04.08 09:06) [1]
> Шифруешься, DelphiN ?)
:)) Нет просто в другом браузере раньше сидел под этим ником :)
А тему новую создал, так как всплыла новая проблема, которая как мне кажется больше связана с сетями ...
← →
Сергей М. © (2008-04-08 10:02) [3]
> DelphiN! (08.04.08 09:40) [2]
Ты вообще вник в
http://delphimaster.net/view/1-1207564254/
?
← →
DelphiN! (2008-04-08 10:06) [4]
> Сергей М. © (08.04.08 10:02) [3]
Установил StackSize в необходимый(статичный) размер, вроде работает все хорошо, спасибо, но вопрос из этой темы остаётся открытым )
← →
Сергей М. © (2008-04-08 10:08) [5]
> вопрос из этой темы остаётся открытым
Тему можно смело закрывать - она обсуждается в "Основная".
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c