作者srxrrr (幹!我是肌董)
看板C_and_CPP
標題[問題] [MFC] FTP如何在連線後 判斷是否還沒斷線
時間Tue Dec 30 13:14:57 2014
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
MFC
問題(Question):
最近在用MFC製作FTP的Client端
大部分是使用CFtpConnection這個類別 來進行檔案傳輸或下載
但最近發現 如果Server端已斷線 此時新的FTP Client當然連不進來
但已連上的 卻還是可以繼續丟資料到Server...
但在CFtpConnection類別內 卻沒有看到連線後判斷是否Server還活著的函數
想請問是否有辦法達成上述的問題呢?
謝謝!!
祝大家 新年快樂^____^
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
[目前程式碼]
連線:
CInternetSession *InternetSession; //指向建立連線的連線設定物件
CFtpConnection *m_pFtpConnection; //指向與FTP伺服器連結的連線物件
InternetSession = new CInternetSession(_T("My Ftp Session"));
//建立CInternetSession物件
m_pFtpConnection =
InternetSession->GetFtpConnection(_T("192.168.7.100"),
_T("Apple"),
_T("1234"),
21,true);
回圈內:
m_pFtpConnection->PutFile(FtpFilePath,_T("ABC.ini"));
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.212.97
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1419916500.A.476.html
→ tubbysong: Command send "NOOP"會反回200 noop command success f 12/30 19:46
推 tubbysong: XXX閒置時這20、30秒要丟一次 12/30 19:50
謝謝t大的回覆!
我查了NOOP這個指令是為了避免被Server踢掉的一直連線指令
但我原本的程式就是 每隔一段時間 定期會將資料丟至Server
這樣應該就不會有被Server踢掉問題
還是您的意思是NOOP也可以偵測 現在是否還與Server保持連線呢?
我查到這裡也有人詢問此問題:
http://ppt.cc/gen.php
我用了2F的回答 在我原本的迴圈內加入:
bool bConnect=false;
bConnect=InternetSession->SetOption(INTERNET_OPTION_KEEP_CONNECTION
,INTERNET_KEEP_ALIVE_ENABLED);
if(bConnect==false)
MessageBox(_T("BREAK LINE"), _T("Connection Info"));
但就算有在連線 bConnect也是回傳false耶 QQ
請問您或版上的其他熱心網友 可以給些建議
謝謝!!
※ 編輯: srxrrr (211.72.212.97), 12/31/2014 14:22:07
→ tubbysong: Noop會被回應200所以你在線上 12/31 17:50
→ tubbysong: 上面你查的code沒有連線查詢,他是建立連接 12/31 17:55