送信要求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のエラーコードと同様です。
詳細は、「エラーコード・メッセージ」を参照してください。
<使用例>
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; hHulDll = LoadLibrary("C:\\HULFT Family\\hulft8\\bin\\hulftrt.dll"); if (hHulDll == NULL) { printf("Unable to load hulftrt.dll." "(Error code=%lu)\n", GetLastError()); return 1; } hApiDll = LoadLibrary("C:\\HULFT Family\\hulft8\\bin\\hulapi.dll"); 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; }