Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
2-1249040793
Zheksonz
2009-07-31 15:46
2009.10.04
Выгружаю процесс, аиконкапроболжает висеть на TaskBar


2-1249339340
bag
2009-08-04 02:42
2009.10.04
Помогите с if... then


3-1227530650
maxbog
2008-11-24 15:44
2009.10.04
Проблема с исходником Delphi


1-1218115742
Lacmus
2008-08-07 17:29
2009.10.04
Преобразование WideString в String


15-1249260855
Дмитрий С
2009-08-03 04:54
2009.10.04
В кипятке 4-5 минут.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский