對應交談範例
如需對應交談的背景資訊,請參閱 比較基本和對應的交談。
下列對應交談範例顯示用來啟動交談、交換資料及結束交談的 APPC 動詞。 APPC 動詞參數位於括弧中。
叫用 TP 所發出 | 由可叫用 TP 發行 |
---|---|
TP_STARTED | |
MC_ALLOCATE | |
MC_SEND_DATA | |
MC_DEALLOCATE | |
TP_ENDED | RECEIVE_ALLOCATE |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_OK) | |
(rtn_status=AP_NO) | |
(what_rcvd=AP_DATA_COMPLETE) | |
MC_RECEIVE_AND_WAIT | |
(primary_rc=AP_DEALLOC_NORM) | |
TP_ENDED |
下列段落描述對應交談中使用的動詞。
啟動對應交談的動詞
若要啟動對應的交談,叫用 TP 會發出下列動詞命令:
TP_STARTED,通知 APPC 本機 TP 正在開始交談。
MC_ALLOCATE,要求 APPC 在本機 TP 與合作夥伴 TP 之間建立交談。
可叫用的 TP 問題 RECEIVE_ALLOCATE,通知 APPC 已準備好開始與叫用 TP 的對話。
在對應交談中傳送資料的動詞
MC_SEND_DATA 會將一筆資料記錄放在本機 LU 的傳送緩衝區 (一筆記錄,其中包含要傳送) 的應用程式資料。 在發生下列其中一個事件之前,不會進行資料傳輸至合作夥伴 TP:
傳送緩衝區會填滿。
傳送 TP 會發出動詞命令,強制 APPC 排清緩衝區,並將資料傳送至夥伴 TP。
在上述範例中,傳送緩衝區同時包含資料記錄和 MC_ALLOCATE 要求 (,其位於資料記錄) 前面。 因此,在範例中, MC_DEALLOCATE 排清緩衝區,並將 MC_ALLOCATE 要求和資料記錄傳送給夥伴 TP。 排清緩衝區的其他動 詞命令MC_CONFIRM 和 MC_FLUSH。
用於在對應交談中接收資料的動詞
MC_RECEIVE_AND_WAIT動詞命令可讓 TP 接收資料記錄或狀態資訊。 如果目前沒有可用的資料,TP 會等候資料送達。 針對 Windows 系統,請與WinAsyncAPPC搭配發出MC_RECEIVE_AND_WAIT,而不是此呼叫的封鎖版本。
在此範例中,接收 TP 問題 MC_RECEIVE_AND_WAIT 兩次。 第一次,它會發出動詞來接收資料。 當完成接收完整資料記錄 (what_rcvd AP_DATA_COMPLETE) 時,它會再次發出 MC_RECEIVE_AND_WAIT 以接收傳回碼。 傳回碼AP_DEALLOC_NORMAL表示交談已解除配置。
注意
MC_RECEIVE_IMMEDIATE 會執行與 MC_RECEIVE_AND_WAIT相同的功能,不同之處在于,如果合作夥伴 TP 目前無法使用資料,則不會等候。 相反地,它會傳回呼叫 TP 的無資料可用回應。
結束對應交談的動詞
若要結束對應的交談,其中一個 TP 問題 MC_DEALLOCATE,這會導致 APPC 解除配置兩個 TP 之間的交談。
解除配置交談之後,這兩個 TP 問題 TP_ENDED。
注意
TP 可以同時參與多個交談。 在此情況下,所有交談都解除配置之後 , TP 問題TP_ENDED。