System.Win.ScktComp.TWinSocketStream.Write
Delphi
function Write(const Buffer; Count: Longint): Longint; override;
C++
virtual int __fastcall Write(const void *Buffer, int Count)/* overload */;
inline int __fastcall Write(const System::DynamicArray<System::Byte> Buffer, int Offset, int Count){ return System::Classes::TStream::Write(Buffer, Offset, Count); }
inline int __fastcall Write(const System::DynamicArray<System::Byte> Buffer, int Count){ return System::Classes::TStream::Write(Buffer, Count); }
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Win.ScktComp.pas System.Win.ScktComp.hpp |
System.Win.ScktComp | TWinSocketStream |
説明
Write は,Buffer から Count で指定するバイト数をソケット接続に書き込みます。
Write メソッドを使用すると,Buffer からソケット接続にデータを書き込むことができます。Write メソッドは転送されたバイト数を返します。
ソケット接続が極度に低速で,書き込み処理が TimeOut ミリ秒(TimeOut プロパティ値)経過しても完了しないと,Write メソッドは 0 を返すことがあります。これにより,ソケット接続で問題が生じても Write メソッドが無期限に待ち受け状態にならないことが保証されます。
接続速度の遅さのために Write メソッドがタイムアウトするのを防ぐには,Count の値を大きくして呼び出し回数を少なくするのではなく,Count を小さめの値に設定して Write を複数回呼び出すようにします。
WriteBuffer メソッドとは異なり,Count で指定したバイト数が書き込まれなくても Write は例外を生成しません。たとえば,回線速度が低速すぎてすべてのデータを送信できない場合,Write は 0 を返しますが,WriteBuffer は例外を生成します。