送信要求API

送信要求または再送要求を発行するAPIです。

構文

INT __stdcall   utlrecv( LPCSTR lpszFileID , LPCSTR lpszHostName ,
                BOOL bResend , BOOL bNp , BOOL bSync , INT nWait );

パラメーター説明

LPCSTR lpszFileID(IN)

集信したいファイルIDを指定

50バイト以内の文字列で指定します。省略する場合は“NULL”を指定します。

LPCSTR lpszHostName(IN)

送信を依頼する相手ホスト名を指定

68バイト以内の文字列で指定します。省略する場合は“NULL”を指定します。

再送要求時(bResend=TRUE)の場合、必ず指定しなければなりません。

BOOL bResend(IN)

再送要求フラグを指定

TRUE

: 再送要求を指定

FALSE

: 送信要求を指定

BOOL bNp(IN)

チェックポイントフラグを指定

送信要求(bResend=FALSE)の場合は、必ず“FALSE”を指定してください。

TRUE

: ファイルの先頭から再送要求を行う

FALSE

: チェックポイント再送要求を行う

BOOL bSync(IN)

同期転送フラグを指定

再送要求(bResend=TRUE)の場合は、同期転送指定はできません。

TRUE

: 同期転送する

FALSE

: 同期転送しない

INT nWait(IN)

同期転送時の待ち時間を指定(秒)

同期転送時に処理結果を受け取るために同期をとる時間を、“10”~“259200”の範囲で指定します。この時間に至ると、たとえ集信中であっても、処理を戻します。その場合、転送結果は戻りませんので注意してください。

同期転送指定の場合(bSync=TRUE)のみ有効となります。同期転送しない場合(bSync=FALSE)は“0”を指定します。

同期転送指定時に“0”を指定した場合、システム動作環境設定ファイルのソケットリードタイムアウトで設定された値を使用します。

注意事項

「lpszFileID」と「lpszHostName」が、ともに“NULL”の場合は、全ホストに対する再送要求を行います。

戻り値

正常時は「0」です。エラー時のステータスはutlrecv.exeのエラーコードと同様です。

詳細は、以下を参照してください。

HULFT10 for Windows エラーコード・メッセージ : 送信要求コマンド(utlrecv.exe)

使用例

Visual C++から使用する場合

#include <windows.h>
#include <stdio.h>

typedef INT (__stdcall *LPUTLRECV)(
    LPCSTR lpszFileID, LPCSTR lpszHostName, BOOL bResend,
    BOOL bNp, BOOL bSync, INT nWait);

int main()
{
    CHAR szFileID[50+1];
    CHAR szHostName[68+1];
    BOOL bResend;
    BOOL bNp;
    BOOL bSync;
    INT nWait;
    HMODULE hHulDll;
    HMODULE hApiDll;
    LPUTLRECV lpUtlrecv;
    INT nStatus;

    strcpy_s(szFileID, sizeof(szFileID), "TEST0001");
    strcpy_s(szHostName, sizeof(szHostName), "host0001");
    bResend = FALSE;
    bNp = FALSE;
    bSync = TRUE;
    nWait = 300;

    hApiDll = LoadLibraryEx("C:\\HULFT Family\\hulft10\\bin\\hulapi.dll", NULL, 
    LOAD_WITH_ALTERED_SEARCH_PATH);
    if (hApiDll == NULL)
    {
        printf("Unable to load hulapi.dll."
            "(Error code = %lu)\n", GetLastError());
        FreeLibrary(hHulDll);
        return 2;
    }
    lpUtlrecv = (LPUTLRECV)GetProcAddress(hApiDll, "utlrecv");
    if (lpUtlrecv == NULL)
    {
        printf("Unable to retrieves the address of HULFT API."
            "(Error code=%lu)\n", GetLastError());
        FreeLibrary(hApiDll);
        FreeLibrary(hHulDll);
        return 3;
    }
    nStatus = lpUtlrecv(szFileID, szHostName, bResend, bNp, bSync, nWait);
    if (nStatus == 0)
    {
        printf("Terminated normally.\n");
    }
    else
    {
        printf("Error occurred when calling HULFT API."
            "(Returned value=%d)\n", nStatus);
    }
    FreeLibrary(hApiDll);
    FreeLibrary(hHulDll);
    return 0;
}