recv - データの受信 ------------------------------------------------------------------------------ typedef gboolean (*RecvUIFunc) (SockInfo *sock, gint count, gint read_bytes, gpointer data); データの受信に時間がかかる場合に定期的にユーザインタフェースを更新する ためのコールバック関数の型です。 sock: SockInfo 構造体へのポインタ count: 受信した行数 read_bytes: 受信したバイト数 data: ユーザデータ 戻り値: TRUE の場合受信を続行 FALSE の場合キャンセル ------------------------------------------------------------------------------ gchar *recv_bytes (SockInfo *sock, glong size); ソケット sock からデータを size バイト受信します。 受信バッファの末尾はヌル文字で終端されます。 受信したデータが size バイトに満たない場合は NULL が返ります。 返った値は g_free() で解放する必要があります。 sock: SockInfo 構造体へのポインタ size: 受信するデータのサイズ 戻り値: 受信したデータ エラーの場合 NULL ------------------------------------------------------------------------------ gint recv_write_to_file (SockInfo *sock, const gchar *filename); ソケット sock からテキストデータを終端行("." + CR + LF)まで受信し、 ファイル filename に書き出します。 また、以下の変更が行われます。 * 改行は LF に正規化されます。 * 先頭が ".." で始まる行は最初の "." が削除されます。 * 先頭が ">From " で始まる行は最初の ">" が削除されます。 sock: SockInfo 構造体へのポインタ filename: 書き出すファイルのパス 戻り値: 成功した場合 0 エラーの場合負の値 -1: ファイル関連のエラーなど -2: ソケットの受信エラー ------------------------------------------------------------------------------ gint recv_bytes_write_to_file (SockInfo *sock, glong size, const gchar *filename); ソケット sock からデータを size バイト受信し、ファイル filename に 書き出します。その際、改行は LF に正規化されます。 sock: SockInfo 構造体へのポインタ size: 受信するデータのサイズ filename: 書き出すファイルのパス 戻り値: 成功した場合 0 エラーの場合負の値 -1: ファイル関連のエラーなど -2: ソケットの受信エラー ------------------------------------------------------------------------------ gint recv_write (SockInfo *sock, FILE *fp); ソケット sock からテキストデータを終端行("." + CR + LF)まで受信し、 ファイルストリーム fp に書き出します。 また、以下の変更が行われます。 * 改行は LF に正規化されます。 * 先頭が ".." で始まる行は最初の "." が削除されます。 * 先頭が ">From " で始まる行は最初の ">" が削除されます。 sock: SockInfo 構造体へのポインタ fp: 書き出すファイルストリーム 戻り値: 成功した場合 0 エラーの場合負の値 -1: ファイル関連のエラーなど -2: ソケットの受信エラー ------------------------------------------------------------------------------ gint recv_bytes_write (SockInfo *sock, glong size, FILE *fp); ソケット sock からデータを size バイト受信し、ファイルストリーム fp に 書き出します。その際、改行は LF に正規化されます。 sock: SockInfo 構造体へのポインタ size: 受信するデータのサイズ fp: 書き出すファイルストリーム 戻り値: 成功した場合 0 エラーの場合負の値 -1: ファイル関連のエラーなど -2: ソケットの受信エラー ------------------------------------------------------------------------------ void recv_set_ui_func (RecvUIFunc func, gpointer data); recv_write() または recv_write_to_file() で受信に時間がかかる場合に 定期的にユーザインタフェースを更新するためのコールバック関数を指定します。 func: RecvUIFunc 型のコールバック関数へのポインタ data: func に渡されるユーザデータ