亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? socket.txt

?? 這個是實現FTP客戶端的程序,這些程序代碼可以在ECLIPSE上實現.
?? TXT
字號:
時間問題,在轉載這個代碼前,沒有經過測試,大家自己測試一下,如果有什么問題,再跟我們聯系。 

//1:顯示文件進度 


//2:可以隨時終止傳輸過程 


//發送數據線程 


UINT SendDataThread(LPVOID lpParam); 


//接收數據線程 


UINT ReceiveDataThread(LPVOID lpParam); 


//發送數據按鈕消息響應函數 


void CTzg004Dlg::OnButtonSend() 


{ 


   // TODO: Add your control notification handler code here 


   //初始化數據發送結束標志 


   m_bSendEnd=FALSE; 


   //初始化數據接收結束標志 


   m_bRecEnd=FALSE; 


   //更新對話框數據 


   UpdateData(TRUE); 


   //打開文件對話框 


   CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWR99vEPROMPT, 


     "所有文件 (*.*)|*.*||"); 


   if(dlg.DoModal()==IDOK) 


   { 


     m_strFileName=dlg.GetPathName(); 


     //開始發送數據線程 


     AfxBeginThread(SendDataThread,this,THREAD_PRIOR99vY_NORMAL); 


   } 


} 


//接收數據按鈕消息響應函數 


void CTzg004Dlg::OnButtonReceive() 


{ 


   // TODO: Add your control notification handler code here 


   //初始化數據發送結束標志 


   m_bSendEnd=FALSE; 


   //初始化數據接收結束標志 


   m_bRecEnd=FALSE; 


   UpdateData(TRUE); 


   //開始接收數據線程 


   AfxBeginThread(ReceiveDataThread,this,THREAD_PRIOR99vY_NORMAL); 


} 


//終止發送按鈕消息響應 


void CTzg004Dlg::OnButtonSendEnd() 


{ 


   // TODO: Add your control notification handler code here 


   //設置發送數據結束標志 


   m_bSendEnd=TRUE; 


} 


//終止接收按鈕消息響應 


void CTzg004Dlg::OnButtonRecEnd() 


{ 


   // TODO: Add your control notification handler code here 


   //設置接收數據結束標志 


   m_bRecEnd=TRUE; 


} 


UINT SendDataThread(LPVOID lpParam) 


{ 


   CTzg004Dlg *pDlg=(CTzg004Dlg *)lpParam; 


   CFile file; 


   if( !file.Open(pDlg->m_strFileName, CFile::modeRead) ) 


   { 


     AfxMessageBox("打開文件出錯!"); 


     return 0; 


   } 


   CSocket sockTemp; 


   CString str,str1; 


   sockTemp.Create(pDlg->m_iDataPort1); //得到端口號 


   sockTemp.Listen(1);//只接受一個連接 


   CSocket sockSend; 


   //設置發送按鈕禁止 


   pDlg->GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(FALSE); 


   sockTemp.Accept(sockSend);//注意,sockTemp已交了自己的指針地址到sockSend,故不用Close 


   //打開發送終止按鈕 


   pDlg->GetDlgItem(IDC_BUTTON_SEND_END)->EnableWindow(TRUE); 


   


   


   int iBufSize = 1024 * 5;  


   int iSize = iBufSize; 


   LPBYTE pBuf = new BYTE[iBufSize];   


   


   DWORD dwTemp = 0; 


   BOOL bTest = sockSend.AsyncSelect(0);//由于CSocket實際是異步,將它變為同步(阻塞)方式。 


   sockSend.IOCtl( FIONBIO, &dwTemp);//用IOCtl要將AsyncSelect的第一個參數為0,參看MSDN 


   


   UINT uiLength = file.GetLength(); 


   sockSend.Send(&uiLength, 4);//傳送文件大小到接收方(Client端) 


   


   int iNumByte; 


   UINT uiTotal = 0; 


   while(uiTotal < uiLength) 


   { 


     int iEnd=pDlg->m_bSendEnd; 


     //傳送發送端狀態(是否結束) 


     iNumByte = sockSend.Send(&iEnd, sizeof(int)); 


     //發送錯誤 


     if(iNumByte == SOCKET_ERROR) 


     { 


       AfxMessageBox("發送錯誤!"); 


       goto ExitLable1; 


     }else if(iEnd==1)//發送端終止 


     { 


       AfxMessageBox("發送端終止"); 


       goto ExitLable1; 


     }     


     //讀取文件內容 


     if((int)(uiLength - uiTotal) < iBufSize) 


       iSize = uiLength - uiTotal;//當小于緩沖區iTEST時的處理 


     iSize=file.Read(pBuf , iSize);//得到讀取的字節數 


     int iCount=0; 


     //發送定長文件數據 


     while(iCount<iSize) 


     { 


       iNumByte = sockSend.Send(pBuf, iSize-iCount);//注意iNumByte為實際的發送字節數,不要以iSize為準 


       if(iNumByte == SOCKET_ERROR) 


       { 


          AfxMessageBox("發送錯誤!"); 


          goto ExitLable1; 


       } 


       iCount+=iNumByte; 


       if(iCount<iSize) 


       { 


          file.Seek(iSize-iCount,CFile::current); 


       } 


     } 


     uiTotal += iCount; 


     //設置發送數據進度條 


     pDlg->m_CtrlProgressSend.SetPos(int(((double)uiTotal/uiLength)*100)); 


     str.Format("發送進度:%d%%",int(((double)uiTotal/uiLength)*100)); 


     //表明發送數據百分比 


     pDlg->GetDlgItem(IDC_STATIC_SEND)->GetWindowText(str1); 


     if(str1!=str) 


       pDlg->GetDlgItem(IDC_STATIC_SEND)->SetWindowText(str); 


   } 


   //發送文件成功 


   AfxMessageBox("發送文件成功!"); 


ExitLable1: 


   delete[] pBuf; 


   file.Close(); 


   sockSend.Close(); 


   pDlg->m_CtrlProgressSend.SetPos(0);//恢復進度 


   pDlg->GetDlgItem(IDC_BUTTON_SEND_END)->EnableWindow(FALSE);//設置發送結束按鈕禁止 


   pDlg->GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(TRUE);//設置發送按鈕正常 


   pDlg->GetDlgItem(IDC_STATIC_SEND)->SetWindowText("發送進度:"); //恢復提示進度 


   return 0; 


} 



UINT ReceiveDataThread(LPVOID lpParam) 


{ 


   CTzg004Dlg *pDlg=(CTzg004Dlg *)lpParam; 


   //保存文件對話框 


   CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWR99vEPROMPT, 


     "所有文件 (*.*)|*.*||"); 


   while(dlg.DoModal()!=IDOK) 


   { 


     AfxMessageBox("選擇文件出錯,請重新選擇!"); 


   }     


   CString str,str1,str2; 


   CSocket sockRecv; 


   sockRecv.Create(); 


   pDlg->m_CtrlIPSend.GetWindowText(str);//得到發送端IP地址 


   pDlg->GetDlgItem(IDC_BUTTON_RECEIVE)->EnableWindow(FALSE);//禁止接收按鈕 


   while(sockRecv.Connect(str,pDlg->m_iDataPort2)==0)//連接發送方地址,若上網,可改為實際IP地址,端口要跟Server端相同。 


   { 


     Sleep(50); 


   } 


   pDlg->GetDlgItem(IDC_BUTTON_REC_END)->EnableWindow(TRUE);//打開終止接收按鈕 


   str2=dlg.GetPathName();//得到文件名 


   CFile file; 


   file.Open(str2, CFile::modeCreate | CFile::modeWrite); 


   BOOL bFileFail=FALSE; 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产亚洲另类动漫| 欧美伦理视频网站| 国产精品丝袜久久久久久app| 国产主播一区二区三区| 久久亚洲综合色一区二区三区| 麻豆91精品91久久久的内涵| 欧美成人性战久久| 国产九色sp调教91| 国产精品久久久一本精品| 91丨porny丨户外露出| 亚洲伊人色欲综合网| 欧美精品乱人伦久久久久久| 青娱乐精品视频| 久久久噜噜噜久久中文字幕色伊伊| 国产美女精品在线| 亚洲欧美一区二区久久 | 紧缚奴在线一区二区三区| 欧美成人vps| 在线综合+亚洲+欧美中文字幕| 老司机免费视频一区二区| 国产午夜精品久久久久久久| 色综合久久综合| 视频一区二区不卡| 国产性色一区二区| 欧美色偷偷大香| 极品少妇xxxx精品少妇偷拍| 国产精品伦一区二区三级视频| 在线观看不卡一区| 激情六月婷婷久久| 亚洲欧美成aⅴ人在线观看| 91精品国产综合久久久久久久| 国产一区在线视频| 亚洲精品成a人| 久久夜色精品国产噜噜av| 色欧美乱欧美15图片| 久久精品国产一区二区三区免费看| 国产精品黄色在线观看| 91精品久久久久久蜜臀| 成人h精品动漫一区二区三区| 亚洲不卡av一区二区三区| 国产午夜精品一区二区| 91精品综合久久久久久| 99视频精品免费视频| 青青草97国产精品免费观看| 国产精品国产三级国产aⅴ入口 | 成人午夜私人影院| 日韩1区2区3区| 亚洲欧美电影院| 久久女同性恋中文字幕| 欧美自拍丝袜亚洲| 9久草视频在线视频精品| 麻豆精品一区二区三区| 亚洲国产精品自拍| 亚洲欧洲三级电影| 久久精品一区八戒影视| 欧美一级艳片视频免费观看| 日本高清不卡aⅴ免费网站| 国产成人在线观看免费网站| 丝袜脚交一区二区| 亚洲国产视频直播| 亚洲视频每日更新| 欧美国产日本视频| 欧美成人一区二区三区| 制服丝袜日韩国产| 欧美日韩精品综合在线| 日本精品一区二区三区四区的功能| 国产成人av电影在线| 精品亚洲aⅴ乱码一区二区三区| 亚洲一二三四区| 亚洲精品乱码久久久久久久久| 国产精品女人毛片| 中文字幕av免费专区久久| 久久久另类综合| 国产亚洲欧美激情| 国产亚洲一区二区三区在线观看| 日韩精品一区二区三区在线观看| 8x福利精品第一导航| 欧美日韩精品免费观看视频 | 一区二区三区成人| 中文av一区特黄| 中文字幕av一区二区三区高| 国产日韩欧美高清在线| 国产视频视频一区| 日本一区二区在线不卡| 国产精品每日更新| 亚洲欧美日韩中文播放| 亚洲美女视频在线| 亚洲一区二区三区四区在线| 99精品久久免费看蜜臀剧情介绍| 国产精品夜夜嗨| 成人污视频在线观看| 99久久精品久久久久久清纯| av成人动漫在线观看| 91啪亚洲精品| 欧美性受xxxx| 制服丝袜国产精品| 精品久久久久久综合日本欧美| 精品99一区二区| 欧美激情在线观看视频免费| 成人免费在线视频观看| 亚洲高清一区二区三区| 日韩国产在线观看| 国产美女精品在线| 99久久综合国产精品| 欧美性色黄大片| 日韩网站在线看片你懂的| 久久久久九九视频| 亚洲日本在线天堂| 日本系列欧美系列| 国产成人鲁色资源国产91色综 | 欧美一区二区网站| 欧美激情一区在线| 亚洲伊人色欲综合网| 久久国产剧场电影| 91在线视频免费观看| 欧美日韩国产美女| 久久综合色一综合色88| 成人免费在线观看入口| 日韩成人免费看| 大白屁股一区二区视频| 欧美日本高清视频在线观看| 精品成人在线观看| 亚洲免费电影在线| 国产乱码精品一品二品| 在线精品视频免费观看| 2020国产成人综合网| 亚洲电影激情视频网站| 国产成人午夜精品影院观看视频 | 水野朝阳av一区二区三区| 成人午夜在线视频| 91精品国产麻豆| 亚洲视频在线一区观看| 麻豆精品视频在线观看| 色久优优欧美色久优优| 国产亚洲成aⅴ人片在线观看| 亚洲丰满少妇videoshd| 成人福利视频网站| 精品久久一二三区| 亚洲va欧美va人人爽| 99这里只有久久精品视频| 日韩精品一区二区三区在线| 亚洲图片欧美综合| 91香蕉视频黄| 欧美激情在线看| 久久99九九99精品| 欧美丰满高潮xxxx喷水动漫| 亚洲欧美色图小说| 国产99一区视频免费 | 99视频有精品| 精品福利在线导航| 免费在线观看一区| 欧美日韩日本视频| 亚洲精品视频在线看| 成人毛片视频在线观看| 久久久久国产成人精品亚洲午夜| 日韩国产欧美一区二区三区| 在线视频国内自拍亚洲视频| 亚洲欧洲一区二区在线播放| 成人午夜精品在线| 久久网这里都是精品| 国产最新精品精品你懂的| 日韩欧美亚洲一区二区| 日韩激情av在线| 欧美精品自拍偷拍| 性做久久久久久免费观看| 欧洲av在线精品| 亚洲午夜激情网站| 欧美特级限制片免费在线观看| 亚洲伦理在线免费看| 91麻豆精东视频| 日韩美女视频19| 91视频免费播放| 成人app网站| 国产欧美日韩一区二区三区在线观看| 国产麻豆91精品| 久久久噜噜噜久久人人看| 国模少妇一区二区三区| 久久久精品影视| 成人手机在线视频| 亚洲三级在线免费| 欧美又粗又大又爽| 天堂一区二区在线| 欧美一区二区三区播放老司机| 蜜臀av国产精品久久久久| 欧美精品一区二区三区蜜桃| 国产综合色精品一区二区三区| 久久亚洲欧美国产精品乐播| 国产成人免费在线观看不卡| 国产精品乱码一区二区三区软件| 成人av电影在线网| 亚洲国产一二三| 日韩欧美一区二区在线视频| 国产高清久久久| 亚洲色图欧美在线| 91精品国产色综合久久不卡电影| 捆绑变态av一区二区三区| 日本一区二区视频在线观看| 色拍拍在线精品视频8848| 日本欧美韩国一区三区| 欧美激情在线一区二区三区|