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

把握命運,追逐夢想

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

統計

留言簿(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>
            日韩午夜精品| 亚洲激情在线播放| 麻豆亚洲精品| 日韩系列在线| 欧美日韩一区二区三区视频| 在线日韩精品视频| 欧美视频日韩| 欧美激情小视频| 久久精品国产一区二区三区免费看 | 久久久久国色av免费观看性色| 在线欧美亚洲| 国产伦一区二区三区色一情| 欧美人在线视频| 欧美11—12娇小xxxx| 久久精品男女| 午夜欧美大片免费观看 | 中日韩高清电影网| 国产一区二区视频在线观看| 欧美日韩综合网| 欧美v国产在线一区二区三区| 欧美一区二区三区电影在线观看| 精品999在线观看| 亚洲国产高清一区二区三区| 国产综合婷婷| 欧美mv日韩mv亚洲| 亚洲欧美日韩在线| 91久久极品少妇xxxxⅹ软件| 久久成人精品视频| 亚洲免费av片| 狠狠综合久久av一区二区老牛| 欧美屁股在线| 久久久爽爽爽美女图片| 国产精品99久久久久久宅男 | 久久久激情视频| 一区二区三区色| 亚洲电影免费观看高清| 久久精品国产一区二区电影| 亚洲视频精选在线| 亚洲国产精品高清久久久| 国产伦理精品不卡| 欧美性色综合| 欧美激情视频给我| 久久人人爽人人| 午夜在线播放视频欧美| 亚洲欧美日韩区| 最新亚洲一区| 欧美国产一区视频在线观看| 先锋影音网一区二区| 99国产精品| 伊人久久大香线| 国产日韩综合| 国产精品伦理| 欧美日韩午夜激情| 欧美 日韩 国产在线| 久久狠狠亚洲综合| 香蕉成人伊视频在线观看| 正在播放亚洲一区| 国产午夜久久| 欧美日韩精品欧美日韩精品| 亚洲乱码视频| 欧美人在线观看| 亚洲四色影视在线观看| 国内精品久久久久久影视8 | 国产精品久久二区二区| 欧美 日韩 国产一区二区在线视频| 久久久精品一区二区三区| 久久福利精品| 久久经典综合| 国产欧美91| 国产精品美女诱惑| 欧美日韩国产91| 亚洲最新视频在线播放| 在线欧美日韩精品| 亚洲激情小视频| 久久久久久亚洲精品杨幂换脸 | 亚洲免费在线视频| 亚洲精品中文字幕在线| 欧美小视频在线观看| 亚洲电影av在线| 欧美在线1区| 亚洲国产人成综合网站| 欧美精品亚洲| 亚洲美女在线国产| 久久久久久久91| 欧美日产一区二区三区在线观看| 欧美日韩一区二区免费在线观看 | 免费日韩成人| 99国产精品国产精品毛片| 久久久水蜜桃| 一本久道综合久久精品| 国产精品美女视频网站| 欧美777四色影视在线| 一区二区免费看| 亚洲国产老妈| 亚洲激情综合| 免费看的黄色欧美网站| 老鸭窝亚洲一区二区三区| 亚洲伦理网站| 亚洲午夜激情| 亚洲国内高清视频| 久久精品综合网| 欧美好吊妞视频| 亚洲国产精品一区二区尤物区 | 在线看日韩欧美| 欧美亚洲一级片| 久久国内精品自在自线400部| 亚洲电影免费观看高清| 美女视频一区免费观看| 欧美激情一区二区三区全黄| 一区二区三区蜜桃网| 国产婷婷色综合av蜜臀av| 欧美成人免费在线观看| 久久精品道一区二区三区| 欧美在线播放一区| 午夜精品av| 先锋影音网一区二区| 影音先锋日韩精品| 欧美激情精品久久久| 欧美亚洲综合另类| 欧美一区二区视频在线| 日韩午夜精品视频| 久久精品1区| 一区二区高清视频| 欧美一区二区高清| 欧美男人的天堂| 亚洲免费电影在线| 亚洲福利视频网站| 一卡二卡3卡四卡高清精品视频 | 国产精品美女诱惑| 亚洲黄色av一区| 午夜久久影院| 欧美黄色免费网站| 亚洲一区二区精品视频| 欧美freesex8一10精品| 国产午夜精品美女毛片视频| 亚洲精选一区| 久久影院午夜片一区| 欧美成人tv| 亚洲综合丁香| 欧美激情国产日韩| 在线精品视频在线观看高清| 校园春色国产精品| 亚洲欧洲另类国产综合| 香蕉av福利精品导航| 国产精品久久二区| 夜夜嗨av色一区二区不卡| 蜜臀久久99精品久久久画质超高清| 一本不卡影院| 欧美大片在线观看一区| 国产一区自拍视频| 欧美一区=区| 一本综合久久| 欧美激情影院| 亚洲第一黄网| 久久综合色播五月| 欧美一级淫片aaaaaaa视频| 欧美日韩在线不卡一区| 亚洲欧洲综合| 欧美国产一区二区三区激情无套| 欧美一区二区在线播放| 国产精品自拍在线| 亚洲欧美日韩国产成人精品影院| 亚洲免费高清| 欧美国产精品v| 亚洲三级电影全部在线观看高清| 久久综合激情| 久久久www成人免费精品| 国内成人精品视频| 欧美一区二区三区四区在线| 一本一本久久a久久精品综合妖精| 欧美黄在线观看| 99re8这里有精品热视频免费 | 久久国产精品99久久久久久老狼| 亚洲欧美第一页| 宅男在线国产精品| 亚洲欧美日韩一区二区在线 | 亚洲韩国青草视频| 久久不见久久见免费视频1| 国产精品久久久一区麻豆最新章节 | 性色av一区二区三区| 国产精品美女久久久免费| 亚洲欧美成人精品| 午夜电影亚洲| 国产一区二区日韩精品| 久久久777| 久久国产精品久久久久久电车| 国产一区二区三区直播精品电影| 老司机67194精品线观看| 久久婷婷久久| 亚洲精品久久久久久久久久久久久 | 亚洲一区二区精品在线| 亚洲视频每日更新| 国产欧美日韩高清| 久久先锋资源| 欧美成人一区二区三区| 一区二区三区毛片| 午夜精品一区二区三区四区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美成人午夜激情| 欧美日韩在线高清|