最新の更新情報

 
このブログ「吟遊詩人の戯言」 の記事検索...

TClientSocket.Socket.SendStream()へのストリーム

関連記事

TClientSocket.Socket.SendStream()へ渡す,TStreamのインスタンス

このインスタンス,解放動作はいらない模様

ヘルプにきっちり書いてあったり

    注意 パラメータとして SendStream に渡されるストリームは,Windowsソケットオブジェクトの所有になります。Windowsソケットオブジェクトは,ストリーム処理を終了すると,ストリームを解放します。したがって,パラメータとして渡しても,解放しないでください。


なして,送信したとたん落ちるのか,小一時間ほど,ずっと悩んでた
メモリリークのチェッカも走らせて確認しましたが
リークは確認されませんでした

念のため,サンプルコード,書いておきますわん


//**********************************************
//ファイル送信の主処理
//
//**********************************************
function TSocketIO.SendFile : boolean;
var
sftm : TFileStream;
begin

if (FileExists(FXMLFileName) = false) then //ファイルが見つからない場合
begin
FError := soceFileNotFound;
Result := false;
exit;
end;

sftm := TFileStream.Create(FXMLFileName, fmOpenRead); //XMLファイルを開く
try
FClientSocket.Socket.SendStream(sftm); //ソケットで送信
finally
//sftm.Free; //ストリームを解放 <--これ,いらない模様
end;

FError := soceNon;
result := true;
end;
[/delphi]

 
 
 
 

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">