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

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

?? netreceivers.cpp

?? 用UDP寫的可靠傳輸程序源代碼,非常有借鑒意義,適合互連網通訊
?? CPP
字號:
// CCTPNetReceiver - CTP reciever
// CTCPNetReceiver - TCP reciever
// CUDPNetReceiver - UDP reciever
// They partly duplicate each other to allow to customize support of every
// protocol easily
// Implementation file
//
// (c) Lev Naumov, CAMEL Laboratory
// E-mail: camellab@mail.ru
// For more information see http://camel.ifmo.ru or
// http://www.codeproject.com/internet/ctp.asp
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#include "NetBasic.h"
#include "NetReceivers.h"
#include "CTPNet.h"
#include "TCPNet.h"
#include "UDPNet.h"
#include "CTPDemo.h"
#include "CTPStatusDlg.h"
#include "CTPDemoDlg.h"

void CCTPNetReceiver::OnReceive(void* data)
{
    // Typecast variables
    CCTPReceivedData* rd=(CCTPReceivedData*)data;
    CCTPDemoDlg* dlg=(CCTPDemoDlg*)m_pMainWnd;
    // Other necessary variables
    CString s="";
    char ips[16];
    char timestamp[22];

    if (rd->command==NET_TEXT) {
        // Handle NET_TEXT command

        rd->from.GetString(ips);
        CCTPErrorInfo::GetTimeStamp(timestamp);
        s.Format("%s CTP> Recieve text from %s: size %d\n",timestamp,ips,rd->size);
        dlg->GetDlgItem(IDC_TEXTRECV)->SetWindowText(rd->pBuf);
    } else if (rd->command==NET_FILE) {
        // Handle NET_FILE command

        rd->from.GetString(ips);
        CCTPErrorInfo::GetTimeStamp(timestamp);
        s.Format("%s CTP> Recieve file from %s: size %d\n",timestamp,ips,rd->size);
        
        // Ask for filename
        CFileDialog fd(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_PATHMUSTEXIST,"All files (*.*)|*.*||");
        if (fd.DoModal()==IDOK) {
            // Copy recieved data to file
            CStdioFile file;
            file.Open(fd.GetPathName(),CFile::typeBinary|CFile::modeCreate|CFile::modeWrite);
            file.Write(rd->pBuf,(UINT)rd->size);
            file.Close();
        }
    }

    // Prepend text to log
    CString text;
    dlg->GetDlgItem(IDC_LOG)->GetWindowText(text);
    dlg->GetDlgItem(IDC_LOG)->SetWindowText(s+text);
}

void CCTPNetReceiver::OnError(void* data)
{
    // Typecast variables
    CCTPErrorInfo* ei=(CCTPErrorInfo*)data;
    CCTPDemoDlg* dlg=(CCTPDemoDlg*)m_pMainWnd;

    // Generate error information text
    CString s;
    char ips[16];
    ei->addr.GetString(ips);
    s.Format("%s CTP> Error from %s: type %d, WinSocket error code %d, command %d\n",ei->timestamp,ips,ei->type,ei->code,ei->command);

    // Prepend text to log
    CString text;
    dlg->GetDlgItem(IDC_LOG)->GetWindowText(text);
    dlg->GetDlgItem(IDC_LOG)->SetWindowText(s+text);
}

void CTCPNetReceiver::OnReceive(void* data)
{
    // Typecast variables
    CTCPReceivedData* rd=(CTCPReceivedData*)data;
    CCTPDemoDlg* dlg=(CCTPDemoDlg*)m_pMainWnd;
    // Other necessary variables
    CString s="";
    char ips[16];
    char timestamp[22];

    if (rd->pBuf[0]==0) {
        // Handle arrived text (first byte is zero)

        rd->from.GetString(ips);
        CCTPErrorInfo::GetTimeStamp(timestamp);
        s.Format("%s TCP> Recieve text from %s: size %d\n",timestamp,ips,rd->size);
        dlg->GetDlgItem(IDC_TEXTRECV)->SetWindowText(&(rd->pBuf[1]));
    } else {
        // Handle arrived file (first byte is not zero)

        rd->from.GetString(ips);
        CCTPErrorInfo::GetTimeStamp(timestamp);
        s.Format("%s TCP> Recieve file from %s: size %d\n",timestamp,ips,rd->size);
        
        // Ask for filename
        CFileDialog fd(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_PATHMUSTEXIST,"All files (*.*)|*.*||");
        if (fd.DoModal()==IDOK) {
            // Copy recieved data to file
            CStdioFile file;
            file.Open(fd.GetPathName(),CFile::typeBinary|CFile::modeCreate|CFile::modeWrite);
            file.Write(&(rd->pBuf[1]),(UINT)rd->size-1);
            file.Close();
        }
    }

    // Prepend text to log
    CString text;
    dlg->GetDlgItem(IDC_LOG)->GetWindowText(text);
    dlg->GetDlgItem(IDC_LOG)->SetWindowText(s+text);
}

void CTCPNetReceiver::OnError(void* data)
{
    // Typecast variables
    CTCPErrorInfo* ei=(CTCPErrorInfo*)data;
    CCTPDemoDlg* dlg=(CCTPDemoDlg*)m_pMainWnd;

    // Generate error information text
    CString s;
    char ips[16];
    ei->addr.GetString(ips);
    s.Format("%s TCP> Error from %s: type %d, WinSocket error code %d\n",ei->timestamp,ips,ei->type,ei->code);

    // Prepend text to log
    CString text;
    dlg->GetDlgItem(IDC_LOG)->GetWindowText(text);
    dlg->GetDlgItem(IDC_LOG)->SetWindowText(s+text);
}

void CUDPNetReceiver::OnReceive(void* data)
{
    // Typecast variables
    CUDPReceivedData* rd=(CUDPReceivedData*)data;
    CCTPDemoDlg* dlg=(CCTPDemoDlg*)m_pMainWnd;
    // Other necessary variables
    CString s="";
    char ips[16];
    char timestamp[22];

    if (rd->pBuf[0]==0) {
        // Handle arrived text (first byte is zero)

        rd->from.GetString(ips);
        CCTPErrorInfo::GetTimeStamp(timestamp);
        s.Format("%s UDP> Recieve text from %s: size %d\n",timestamp,ips,rd->size);
        dlg->GetDlgItem(IDC_TEXTRECV)->SetWindowText(&(rd->pBuf[1]));
    } else {
        // Handle arrived file (first byte is not zero)

        rd->from.GetString(ips);
        CCTPErrorInfo::GetTimeStamp(timestamp);
        s.Format("%s UDP> Recieve file from %s: size %d\n",timestamp,ips,rd->size);
        
        // Ask for filename
        CFileDialog fd(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_PATHMUSTEXIST,"All files (*.*)|*.*||");
        if (fd.DoModal()==IDOK) {
            // Copy recieved data to file
            CStdioFile file;
            file.Open(fd.GetPathName(),CFile::typeBinary|CFile::modeCreate|CFile::modeWrite);
            file.Write(&(rd->pBuf[1]),(UINT)rd->size-1);
            file.Close();
        }
    }

    // Prepend text to log
    CString text;
    dlg->GetDlgItem(IDC_LOG)->GetWindowText(text);
    dlg->GetDlgItem(IDC_LOG)->SetWindowText(s+text);
}

void CUDPNetReceiver::OnError(void* data)
{
    // Typecast variables
    CUDPErrorInfo* ei=(CUDPErrorInfo*)data;
    CCTPDemoDlg* dlg=(CCTPDemoDlg*)m_pMainWnd;

    // Generate error information text
    CString s;
    char ips[16];
    ei->addr.GetString(ips);
    s.Format("%s UDP> Error from %s: type %d, WinSocket error code %d\n",ei->timestamp,ips,ei->type,ei->code);

    // Prepend text to log
    CString text;
    dlg->GetDlgItem(IDC_LOG)->GetWindowText(text);
    dlg->GetDlgItem(IDC_LOG)->SetWindowText(s+text);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产香蕉久久精品| 色呦呦日韩精品| 午夜精品久久久久久| 国产精品第13页| 国产精品美女久久久久久久网站| 久久久精品欧美丰满| 精品国产乱码久久久久久蜜臀| 91精品国产日韩91久久久久久| 欧美日韩国产bt| 欧美精品一卡二卡| 日韩一级二级三级精品视频| 91精品国产综合久久久久久漫画 | 国产精品久久久久影院亚瑟| 国产亚洲综合av| 国产精品色一区二区三区| 中文字幕日韩av资源站| 亚洲美女偷拍久久| 视频精品一区二区| 国内一区二区在线| 成人高清在线视频| 在线观看视频一区| 欧美一区二区三区婷婷月色 | 国产黄色91视频| 成人av在线资源网站| 欧美性感一类影片在线播放| 91精品国产综合久久精品| 26uuu国产电影一区二区| 久久久久久久久岛国免费| 国产精品对白交换视频 | 日本不卡123| 国产精品一二三区在线| 91麻豆123| 日韩美一区二区三区| 自拍偷拍欧美激情| 蜜桃久久久久久| 成人av在线一区二区| 538在线一区二区精品国产| 久久久电影一区二区三区| 亚洲丝袜另类动漫二区| 麻豆精品在线看| 91看片淫黄大片一级在线观看| 日韩午夜av一区| 亚洲日本va午夜在线影院| 麻豆精品视频在线观看免费| 99久久99久久精品国产片果冻| 日韩欧美国产三级| 亚洲电影一级黄| 大胆欧美人体老妇| 精品日韩欧美一区二区| 亚洲高清视频中文字幕| av电影一区二区| 久久免费视频一区| 午夜精品一区二区三区免费视频| 成人丝袜视频网| 日韩欧美色综合网站| 亚洲一区二区三区自拍| 99久久久久久99| 国产欧美日韩综合精品一区二区| 亚洲第一激情av| 91免费国产视频网站| 国产拍揄自揄精品视频麻豆 | 久久亚洲私人国产精品va媚药| 亚洲综合小说图片| 99久久精品情趣| 国产精品毛片久久久久久| 国产精品一区二区在线观看网站| 欧美卡1卡2卡| 亚洲国产毛片aaaaa无费看| 99精品国产视频| 国产目拍亚洲精品99久久精品| 久久99久久99精品免视看婷婷| 欧美一区二区三区免费| 五月天视频一区| 99久久精品国产导航| 国产精品美女久久久久久久久久久 | 亚洲成人综合视频| 欧美视频精品在线| 午夜精品福利久久久| 欧美三片在线视频观看| 亚洲一级二级三级| 欧美丰满一区二区免费视频| 亚洲午夜国产一区99re久久| 欧美日精品一区视频| 亚洲成av人片| 日韩欧美中文字幕公布| 国产在线播放一区二区三区| 久久久久一区二区三区四区| 国产精品一品视频| 中文字幕人成不卡一区| 日本丶国产丶欧美色综合| 亚洲国产精品一区二区尤物区| 欧美日产在线观看| 国产一区二区三区在线观看免费| 久久精品夜夜夜夜久久| 成人av电影在线| 亚洲国产一二三| 91精品国产手机| 国产激情一区二区三区四区| 中文字幕在线不卡国产视频| 欧美伊人精品成人久久综合97| 亚洲一区二区三区不卡国产欧美| 欧美一区二区三区视频| 国产成人精品三级麻豆| 亚洲精品一卡二卡| 欧美一区二区视频在线观看2020| 国产成人小视频| 亚洲综合色噜噜狠狠| 精品欧美乱码久久久久久1区2区| 成人av资源在线观看| 首页国产欧美日韩丝袜| 国产免费成人在线视频| 精品视频在线免费观看| 国产精品一色哟哟哟| 亚洲夂夂婷婷色拍ww47| wwwwww.欧美系列| 91高清在线观看| 激情av综合网| 又紧又大又爽精品一区二区| 精品国产sm最大网站免费看| 在线影视一区二区三区| 国产成人精品三级麻豆| 三级精品在线观看| 亚洲伦理在线免费看| 精品电影一区二区| 欧美亚洲另类激情小说| 岛国精品在线播放| 精品一区二区三区视频| 亚洲va欧美va人人爽午夜| 中文av一区二区| 日韩精品专区在线影院观看| 欧美系列亚洲系列| 成人污视频在线观看| 精品一区二区三区免费观看| 亚洲va韩国va欧美va精品| 中文字幕一区二区三区在线观看| 精品国产伦一区二区三区观看方式 | 成人网页在线观看| 国产综合久久久久久鬼色| 亚洲一区二区黄色| 日韩毛片一二三区| 国产欧美精品区一区二区三区| 日韩欧美国产一区在线观看| 欧美日韩三级视频| 在线一区二区三区四区| 不卡一卡二卡三乱码免费网站| 韩国成人福利片在线播放| 美女在线观看视频一区二区| 亚洲高清视频在线| 亚洲444eee在线观看| 亚洲一区二区欧美日韩| 亚洲一区在线看| 一区二区三区资源| 亚洲五码中文字幕| 亚洲国产日韩综合久久精品| 亚洲精品日产精品乱码不卡| 亚洲激情中文1区| 亚洲欧美日韩小说| 亚洲精选视频免费看| 亚洲另类春色校园小说| 尤物在线观看一区| 亚洲第一搞黄网站| 日韩电影网1区2区| 国产在线一区观看| 成人激情小说网站| 97精品久久久久中文字幕| 色综合色狠狠综合色| 欧美午夜理伦三级在线观看| 欧洲精品中文字幕| 欧美一区二区三区思思人| 日韩美女在线视频| 中文一区二区在线观看| 国产精品激情偷乱一区二区∴| 亚洲欧洲av另类| 亚洲国产综合人成综合网站| 日本女优在线视频一区二区| 奇米色777欧美一区二区| 韩国三级中文字幕hd久久精品| 粉嫩蜜臀av国产精品网站| 色综合一区二区三区| 欧美日韩激情一区二区三区| 欧美电影免费观看高清完整版 | 欧美精品日日鲁夜夜添| 精品久久久网站| 国产精品美女www爽爽爽| 亚洲高清三级视频| 国产精品99久久久久久宅男| 99久久精品国产精品久久| 6080亚洲精品一区二区| 久久精品网站免费观看| 一区二区三区国产精华| 精品亚洲欧美一区| 96av麻豆蜜桃一区二区| 日韩欧美成人激情| 成人欧美一区二区三区1314| 日韩在线卡一卡二| 91小视频免费观看| 精品久久久久一区| 亚洲午夜久久久久中文字幕久| 国产精品亚洲成人| 91精品在线一区二区|