青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

把握命運,追逐夢想

對自己所做的事要有興趣,同時還要能夠堅持不懈

統計

留言簿(1)

閱讀排行榜

評論排行榜

一個簡單的網絡小程序

//tcpsever.cpp
#include"targetver.h"
#define WIN32_LEAN_AND_MEAN
#include
<windows.h>
#include
<commctrl.h>
#include
<tchar.h>
#include
<winsock2.h>
#include
"resource.h"
#include
<string>



HINSTANCE g_hInst 
= NULL;                                // 當前實例
HWND g_hWndDLG = NULL;
HANDLE g_hIconSm
= NULL;
HANDLE g_hIconBg 
= NULL;
HANDLE g_hEnInfo 
= NULL;
SOCKET  g_sServer 
= INVALID_SOCKET;
SOCKET g_sClient1 
= INVALID_SOCKET;
SOCKET g_sClient2 
= INVALID_SOCKET;
std::wstring wstrInfo;
TCHAR  DataBuffer[
256];

// 此代碼模塊中包含的函數的前向聲明:
BOOL InitWindow();
BOOL InitSock();
void AcceptClient();
void RecvInfo();
void CleanupSock();
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     
int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    g_hInst 
= hInstance;

    
if(!InitSock())
    
{
        
return FALSE;
    }


    
if(!InitWindow())
    
{
        
return FALSE;
    }


    MSG msg 
= {0};

    
// 主消息循環:
    while (msg.message != WM_QUIT)
    
{
        
if(PeekMessage(&msg, g_hWndDLG, 00,PM_REMOVE))
        
{
            
if(IsDialogMessage(g_hWndDLG,&msg))
            
{
                wstrInfo.append(L
"i");
            }

            
else
            

                TranslateMessage(
&msg); 
                DispatchMessage(
&msg); 
            }

        }

        
else
        
{
            
/*AcceptClient();
            RecvInfo();
*/

        }


    }


    CleanupSock();
    
return (int) msg.wParam;
}




// “關于”框的消息處理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    
switch (message)
    
{
        
//對于WM_INITDIALOG消息,必須要返回TRUE,無論是否處理這個消息,系統都會處理這個消息的.
    case WM_INITDIALOG:
        
//todo:設置初始化時對話框,以及控件的初始狀態值
        
//這里沒有辦法seticon,因為此時對話框句柄還沒得到,無法指明窗口,似乎需要窗口句柄的都無法在這里初始化
        
//暈,犯糊涂,上面說錯了,消息發送的時候就帶著窗口句柄呢!
        SendMessage(hDlg,WM_SETICON,ICON_SMALL,(LPARAM)g_hIconSm);
        SendMessage(hDlg,WM_SETICON,ICON_BIG,(LPARAM)g_hIconBg);
        
return (INT_PTR)TRUE;

    
case WM_COMMAND:
        
switch (LOWORD(wParam))
        
{
        
case IDCANCEL:
            DestroyWindow(g_hWndDLG);
            
return (INT_PTR)TRUE;
            
break;
        }

        
break;
    
case WM_CLOSE:
        MessageBox(hDlg,L
"X按鈕阻止使用",L"無效",MB_ICONINFORMATION);
        
return (INT_PTR)TRUE;
        
break;
    
case WM_DESTROY:
        PostQuitMessage(
0);
        
return (INT_PTR)TRUE;
        
break;
    }

    
return (INT_PTR)FALSE;
}




BOOL InitWindow()
{

    
//使用LoadImage有很多好處,它可以根據參數中的寬高來從具有多個image的文件中選擇合適大小的image
    
//盡量避免調用LoadIcon,幾次試驗發現,多次調用LoadIcon導致默認圖標被改變的問題
    g_hIconSm = LoadImage(g_hInst,MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,16
        
16,LR_DEFAULTCOLOR);
    g_hIconBg 
= LoadImage(g_hInst,MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,32
        
32,LR_DEFAULTCOLOR);

    
    g_hWndDLG 
= CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_DIALOGSERVER), NULL, About);

    
if(g_hWndDLG == NULL)
    
{
        
return FALSE;
    }


    ShowWindow(g_hWndDLG,SW_SHOW);

    
return TRUE;
}


BOOL InitSock()
{
    WSADATA wsaData;

    
if((WSAStartup(MAKEWORD(2,2),&wsaData)) != 0)
    
{
        MessageBox(g_hWndDLG,L
"網絡模塊加載失敗,程序馬上退出",L"失敗",MB_ICONINFORMATION);
        
return FALSE;
    }


    
if((g_sServer = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))== INVALID_SOCKET)
    
{
        MessageBox(g_hWndDLG,L
"套接字初始化失敗,程序馬上退出",L"失敗",MB_ICONINFORMATION);
        WSACleanup();
        
return FALSE;
    }


    SOCKADDR_IN serverAddr;
    
int port = 5150;

    serverAddr.sin_family 
= AF_INET;
    serverAddr.sin_port 
= htons(port);    
    serverAddr.sin_addr.s_addr 
= htonl(INADDR_ANY);

    
if (bind(g_sServer, (SOCKADDR *)&serverAddr, sizeof(serverAddr))  == SOCKET_ERROR)
    
{
        MessageBox(g_hWndDLG,L
"套接字綁定失敗,程序馬上退出",L"失敗",MB_ICONINFORMATION);
        closesocket(g_sServer);
        WSACleanup();
        
return FALSE;
    }


    
if(listen(g_sServer, 2== SOCKET_ERROR)
    
{
        MessageBox(g_hWndDLG,L
"監聽請求失敗,程序馬上退出",L"失敗",MB_ICONINFORMATION);
        closesocket(g_sServer);
        WSACleanup();
        
return FALSE;
    }


    u_long iMode 
= 0;
    ioctlsocket(g_sServer, FIONBIO, 
&iMode);
    
return TRUE;
}


void AcceptClient()
{
    SOCKADDR_IN   clientAddr;
    
int    clientAddrLen;
    
if(g_sClient1 == INVALID_SOCKET)
    
{
        
if ((g_sClient1 = accept(g_sServer, (SOCKADDR *&clientAddr, &clientAddrLen)) == INVALID_SOCKET)
        
{
            
if( WSAEWOULDBLOCK != WSAGetLastError() )
            
{
                wstrInfo.append(L
"\n接受請求失敗");
                SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
            }

            
else
            
{
                
return;
            }

        }

        
else
        
{
            wstrInfo.append(L
"\n接受請求成功");
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

    }

    
if(g_sClient2 == INVALID_SOCKET)
    
{
        
if ((g_sClient2 = accept(g_sServer, (SOCKADDR *&clientAddr, &clientAddrLen)) == INVALID_SOCKET)
        
{
            
if( WSAEWOULDBLOCK != WSAGetLastError() )
            
{
                wstrInfo.append(L
"\n接受請求失敗");
                SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
            }

            
else
            
{
                
return;
            }

        }

        
else
        
{
            wstrInfo.append(L
"\n接受請求成功");
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

    }

}


void RecvInfo()
{
    
int ret = 0;
    
if(g_sClient1 != SOCKET_ERROR)
    
{
        
if (ret = recv(g_sClient1, (char*)DataBuffer, sizeof(DataBuffer), 0== SOCKET_ERROR)
        
{
            wstrInfo.append(L
"\nrecv失敗");
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());

        }

        
else if(ret == 0)
        
{
            closesocket(g_sClient1);
            g_sClient1 
= INVALID_SOCKET;
            wstrInfo.append(L
"\n連接斷開");
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

        
else
        
{
            wstrInfo.append(L
"\n");
            wstrInfo.append(DataBuffer,ret
/2);
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

    }


    
if(g_sClient2 != SOCKET_ERROR)
    
{
        
if (ret = recv(g_sClient2, (char*)DataBuffer, sizeof(DataBuffer), 0== SOCKET_ERROR)
        
{
            wstrInfo.append(L
"\nrecv失敗");
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

        
else if(ret == 0)
        
{
            closesocket(g_sClient2);
            g_sClient2 
= INVALID_SOCKET;
            wstrInfo.append(L
"\n連接斷開");
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

        
else
        
{
            wstrInfo.append(L
"\n");
            wstrInfo.append(DataBuffer,ret
/2);
            SetDlgItemText(g_hWndDLG,IDC_ENINFO,wstrInfo.c_str());
        }

    }


}


void CleanupSock()
{
    
if(g_sClient1 != INVALID_SOCKET)
    
{
        closesocket(g_sClient1);
        g_sClient1 
= INVALID_SOCKET;
    }

    
if(g_sClient2 != INVALID_SOCKET)
    
{
        closesocket(g_sClient2);
        g_sClient2 
= INVALID_SOCKET;
    }

    
if(g_sServer != INVALID_SOCKET )
    
{
        closesocket(g_sServer);
        g_sServer 
= INVALID_SOCKET;
    }

    WSACleanup();
}

posted on 2009-07-30 07:22 把握命運 閱讀(175) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美亚洲在线播放| 亚洲国内高清视频| 羞羞漫画18久久大片| 欧美大片免费观看| 制服丝袜激情欧洲亚洲| 亚洲人体大胆视频| 欧美老女人xx| 欧美一区视频| 久久欧美中文字幕| 亚洲精品日韩精品| 久久精品日韩一区二区三区| 激情视频一区| 欧美日韩免费观看一区=区三区| 亚洲毛片在线免费观看| 久久久蜜桃精品| 香蕉乱码成人久久天堂爱免费| 99日韩精品| 亚洲国产黄色片| 国产性做久久久久久| 欧美激情91| 久久亚洲不卡| 欧美精品黄色| 暖暖成人免费视频| 久久精品国产亚洲一区二区| 欧美91大片| 午夜精品免费| 亚洲免费播放| 在线观看视频欧美| 国产精品福利网站| 欧美不卡激情三级在线观看| 欧美久久成人| 国产在线精品一区二区夜色| 欧美三级午夜理伦三级中文幕 | 欧美激情按摩| 久久久久国产精品一区三寸| 亚洲一区在线免费观看| 亚洲欧洲另类国产综合| 中国日韩欧美久久久久久久久| 一区二区视频免费完整版观看| 亚洲激情影院| 99视频一区二区三区| 久久精品国亚洲| 一区二区三区高清视频在线观看| 日韩视频在线一区二区三区| 亚洲欧洲精品成人久久奇米网| 久久艳片www.17c.com| 午夜在线观看欧美| 亚洲人精品午夜在线观看| 亚洲精品久久久久中文字幕欢迎你 | 亚洲日本激情| 亚洲精品婷婷| 久久夜色精品国产| 亚洲欧美一区二区三区在线| 亚洲在线观看视频网站| 午夜精品福利在线| 国产精品高潮久久| 一区二区三区高清| 久久精品免费看| 亚洲一品av免费观看| 欧美一区二区在线| 国产欧美日韩精品a在线观看| 影音欧美亚洲| 久久久久久久久蜜桃| 亚洲一区久久| 国产农村妇女毛片精品久久麻豆 | 欧美一区日本一区韩国一区| 国产精品黄页免费高清在线观看| 一本色道久久综合亚洲精品高清| 亚洲国产成人不卡| 亚洲天堂久久| 国产精品久久国产精品99gif| 亚洲综合大片69999| 亚洲专区在线视频| 欧美国产视频在线| 日韩天堂在线观看| 六月婷婷一区| 亚洲在线中文字幕| 国产欧美日韩精品专区| 久久久青草婷婷精品综合日韩| 久久国产精品一区二区三区四区| 国产精品一区二区久久久| 国产精品久久777777毛茸茸| 亚洲一区二区免费| 亚洲国产精品久久久久婷婷884| 理论片一区二区在线| 国产精品私房写真福利视频| 亚洲精品视频一区| 亚洲视频福利| 狠狠色综合网| 久久av一区二区三区漫画| 亚洲国产精品成人精品 | 国产人妖伪娘一区91| 久久视频在线免费观看| 欧美a级片网站| 午夜在线一区| 欧美成人自拍视频| 亚洲一区三区视频在线观看| 久久成人精品| 一本一本大道香蕉久在线精品| 午夜视黄欧洲亚洲| 欧美视频在线一区| 狼狼综合久久久久综合网| 欧美国产三区| 蜜臀久久99精品久久久画质超高清| 亚洲综合三区| 91久久夜色精品国产九色| 中文网丁香综合网| 亚洲国产一区二区精品专区| 亚洲手机成人高清视频| 亚洲第一网站免费视频| 久久综合伊人77777| 欧美日韩一区二区三区在线看| 久久久夜精品| 国产精品久久久久婷婷| 午夜精品久久久99热福利| 久久看片网站| 亚洲第一福利社区| 亚洲欧美日韩国产精品| 亚洲免费电影在线观看| 久久精品视频在线观看| 午夜精品久久久久久99热| 欧美精品在线观看播放| 可以免费看不卡的av网站| 国产乱码精品一区二区三区不卡| 亚洲激情在线观看| 亚洲国产三级网| 久久久久久9999| 久久久久久久综合色一本| 国产精品爽黄69| 亚洲一卡久久| 欧美自拍偷拍| 国产亚洲欧洲997久久综合| 免费在线欧美黄色| 国产一区日韩一区| 欧美一区二区三区免费观看视频| 亚洲一区二区三区三| 欧美日韩国产在线播放网站| 亚洲欧美一区二区激情| 欧美日韩综合| 一区二区三区黄色| 亚洲欧美国产三级| 免费不卡在线观看av| 亚洲一区激情| 亚洲精品视频在线观看免费| 欧美国产日本| 最新国产成人在线观看| 亚洲国产综合在线| 欧美成人精品一区二区| 亚洲激情亚洲| 亚洲欧美日韩国产中文在线| 国产精品视频观看| 欧美一区观看| 亚洲国产三级在线| 99视频精品| 国产伦精品一区二区三区在线观看 | 欧美国产精品人人做人人爱| 欧美日韩综合视频| 一区二区高清视频| 午夜精品久久99蜜桃的功能介绍| 国产色综合久久| 久久夜色精品国产欧美乱| 亚洲第一黄色网| 中文欧美日韩| 韩国一区二区在线观看| 欧美超级免费视 在线| 日韩亚洲欧美在线观看| 欧美在线高清| 国产精品亚发布| 久久久久久自在自线| 亚洲精品国产精品国产自| 午夜国产精品影院在线观看| 怡红院av一区二区三区| 欧美日本不卡| 欧美专区一区二区三区| 欧美一区二区久久久| 亚洲电影视频在线| 国产精品久久久91| 美女视频黄a大片欧美| 一区二区三区欧美| 欧美寡妇偷汉性猛交| 欧美一区二区在线看| 91久久极品少妇xxxxⅹ软件| 国产欧美亚洲日本| 欧美韩日精品| 久久精品日产第一区二区| 99这里有精品| 亚洲一区二区精品视频| 1024日韩| 国产日韩欧美电影在线观看| 欧美日韩999| 猛干欧美女孩| 久久精品视频在线观看| 午夜综合激情| 亚洲一区二区成人| 日韩午夜在线视频| 最新高清无码专区| 亚洲电影免费观看高清完整版在线| 久久久91精品国产| 午夜久久tv| 宅男噜噜噜66一区二区66|