ATM文件传输机制.docx
《ATM文件传输机制.docx》由会员分享,可在线阅读,更多相关《ATM文件传输机制.docx(10页珍藏版)》请在冰豆网上搜索。
![ATM文件传输机制.docx](https://file1.bdocx.com/fileroot1/2023-1/31/99896786-47d9-4616-a955-9c31be307689/99896786-47d9-4616-a955-9c31be3076891.gif)
ATM文件传输机制
1文件传输标准
文件传送标准包含了几种情况:
ATM主动发文件到ATMP:
如发送对帐文件
ATM主动收取ATMP的文件:
如明细查询
ATM被动接收文件:
如更新的广告画面
ATM被动发送文件:
如电子日志的上传
ATMP主动发送文件到ATM监控:
如电子日志的传送
ATMP主动接收ATM监控:
如设备信息文件的同步;
ATMP被动接收ATM监控:
如广告文件的发送
ATMP被动发送ATM监控;
2简要流程
2.1ATM主动发文件到ATMP(发送对帐文件)
giPutFile(...)
ATM====================>ATMP
发送文件请求
ATM-------------------->ATMP
接受文件请求
ATM<--------------------ATMP
2.2ATM主动收取ATMP的文件(接收明细查询文件)
发送明细文件交易请求
ATM-------------------->ATMP
接收主机明细查询应答
ATM<--------------------ATMP
giGetFile(...)
ATM====================>ATMP
2.3ATM被动接收ATMP文件(下发广告画面)
接收主机下传文件请求
ATM<--------------------ATMP
giGetFile(...)
ATM====================>ATMP
收到文件请求
ATM-------------------->ATMP
2.4ATM被动发送到ATMP文件(下提电子流水文件)
接收主机提取文件请求
ATM<--------------------ATMP
giPutFile(...)
ATM====================>ATMP
发送完毕请求
ATM-------------------->ATMP
2.5ATMP主动发送文件到ATM监控
giPutFile(...)
ATMP====================>ATM监控
发送文件通知到ATM监控
ATMP-------------------->ATM监控
接收应答
ATMP<--------------------ATM监控
2.6ATMP主动接收ATM监控文件
发送文件请求到ATM监控
ATMP-------------------->ATM监控
giPutFile(...)
ATMP<====================ATM监控
接收应答(监控文件名)
ATMP<--------------------ATM监控
2.7ATMP被动接收ATM监控文件
giPutFile(...)
ATMP<====================ATM监控
发送文件通知到ATMP
ATMP<--------------------ATM监控
接收应答
ATMP-------------------->ATM监控
2.8ATMP被动发送文件到ATM监控;
发送文件接受请求到ATMP
ATMP<--------------------ATM监控
giPutFile(...)
ATMP====================>ATM监控
接收应答(文件名)
ATMP-------------------->ATM监控
3文件传送协议(Client)
intgiPutFile(intsocket,char*scr_path,char*dest_path,intmax_buf_len)
1.发送报文头FileHeader
2.Atmp响应RESPONSE
3.发送文件内容报文FILEDATA
4.Atmp响应RESPONSE
5.重复3,4直到文件内容发送完毕。
6.如Atmc发送FILEDATA的最后一个文件结束标志为‘E’,则等到RESPONSE为“OK”成功退出
7.如果在文件发送过程中,发送失败或组织发送抱文失败,则退出;接受失败或抱文RESPONSE!
=’OK”,则退出。
IntgiGetFile(intsocket,char*scr_path,char*dest_path,intmax_buf_len)
1.发送报文头FILEHEADER
2.Atmp返回FILEDATA
3.Atmc响应RESPONSE
4.重复2,3直到文件内容发送完毕。
5.当Atmc接收FILEDATA的最后一个文件结束标志为‘E’,取文件成功,主动拆链。
8.如果在文件接收过程中,接收失败或取到非法报文失败,则退出;发送RESPONSE失败,则退出。
4文件传送协议(Server)
长连接:
intiTransWithAtmLong(intsocket,charpszHeaderBuf,intiHeaderLen);
1.接受ATM发送的报文头FileHeader。
2.根据报文头判断是提取文件还是下发文件’u’,‘d’
3.Iftrans_sign=’u’then
{发送Respond给Atmc
接收Atmc发送的FILEDATA
发送Respond给Atmc
……………..
if文件结束thensleep
(1);exit;
}
elseiftrans_sign=‘d’then
{判断Scr_fname是否存在,如果不存在,DATELEN=0;
发送FILEDATA给Atmc
接受Atmc发送的Respond
发送FILEDATA给Atmc
………………
if文件结束thensleep
(1);exit;
}
短连接:
GiTransWithAtmShort(intsocket)
1.Acceptatm’sconnect。
1.接受ATM发送的报文头FileHeader。
2.根据报文头判断是提取文件还是下发文件’u’,‘d’
3.Iftrans_sign=’u’then
{发送Respond给Atmc
接收Atmc发送的FILEDATA
发送Respond给Atmc
……………..
if文件结束thensleep
(1);exit;
}
elseiftrans_sign=‘d’then
{判断Scr_fname是否存在,如果不存在,DATELEN=0;
发送FILEDATA给Atmc
接受Atmc发送的Respond
发送FILEDATA给Atmc
………………
if文件结束thensleep
(1);exit;
}
报文结构
structFileHeader
{
charcmd_code[6];/*交易码*/
charscr_fname[80];/*源文件名*/
chardest_fname[80];/*目标文件名*/
charfilelen[10];/*文件长度*/
charpstart[10];
chartrans_sign;/*传输标志U--提取文件D--发送文件*/
charmax_buf_len[5];/*在文件传输过程中每个报文的最大长度,不管是put,还是get,全部采用该域得到最大报文长度*/
}
structFileData
{
charcmd_code[6];/*交易码*/
charfiledata_sign;/*报文状态S--起始报文M--中间报文E--结束报文*/
charfileoffset[10];/*文件偏移量*/
chardatalen[5];/*文件数据长度*/
}
chardatabuf[len];
len=MAX_BUF–sizeof(SendFileData)-5;/*5为tcp链路上的报文长度*/
structResponse
{
charcmd_code[6];
charfilestatus[5];/*OK,ERROR*/
}