Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Sockets[Read] - ソケット接続からのテキストデータの読み込み
使い方
Read(sid, timeout)
パラメータ
sid - 有効な開かれたソケット ID
timeout - (オプション) 非負の整数; タイムアウトの指定(単位秒)
説明
手続き Read は、ソケット接続から、Maple の文字列形式である本文データを読み込むために使用します。
引数 sid は、開かれたソケット接続に関する有効なソケット ID でなくてはなりません。オプションの引数 timeout は、読み込みの操作が時間切れとなるまで待つ時間の秒数を表すものとして、受け渡されます。
利用可能なデータ(システムに依存した最大バイト数まで)が読み込まれる時、Read は呼び出されると、ソケット sid 上でデータが利用可能となるまで、ずっとブロックします。ソケットから読み込まれるデータは、Maple の文字列として返されます。 timeout パラメータと共にこの手続きが呼び出され、そして指定された秒数内にソケット sid 上でデータが利用可能とならなければ、 Read の操作は false を返します。
Read( sid, 0 ) の形の呼び出しは、直ちに値 false を返します。
Maple の文字列には null (空白の)バイトを含むことができないため、ネットワークを越えてくるデータがプレーンの ASCII テキストからなる場合(通常の場合)にのみ、 Read を使用します。データが null バイトを含む場合には、代わりに Sockets[ReadBinary] を使用して下さい。
Read 手続きは、持続中断のプロトコルに従います(持続中断のプロトコルと Sockets パッケージ 参照)。
例
この例では、null バイトを含む場合に、データがどのように失われる可能性があるかを示しています。
with( Sockets ): sid := Open( "vulcan", "echo" );
data := [ op( convert( "Hi", 'bytes' ) ), 0, op( convert( "there", 'bytes' ) ) ];
datalen := nops( data ): data := Array( data, 'datatype' = 'integer'[ 1 ] );
WriteBinary( sid, data );
Read( sid );
a := Array( 1 .. datalen, 'datatype' = 'integer'[ 1 ] );
ReadBinary( a, sid );
a;
Close( sid );
問題の原因は、Maple の文字列が null バイトを含むことができないことです。
convert( data, 'list' ); # back again
convert( %, 'bytes' );
参照
用語集 - socket, Sockets パッケージの紹介, Sockets[ReadLine], Sockets[ReadBinary], 持続中断のプロトコルと Sockets パッケージ
Download Help Document