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

把握命運,追逐夢想

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

統計

留言簿(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>
            91久久夜色精品国产网站| 午夜精品久久久久久久99水蜜桃| 亚洲欧洲另类| 亚洲三级视频在线观看| 蜜桃av噜噜一区二区三区| 久久综合一区| 日韩亚洲国产精品| 一区二区三区精密机械公司 | 久久久久久久一区二区三区| 久久www成人_看片免费不卡| 久久久亚洲欧洲日产国码αv| 麻豆freexxxx性91精品| 亚洲第一精品电影| 欧美电影在线观看完整版| 亚洲精品国产日韩| 亚洲欧美视频一区| 欧美mv日韩mv国产网站| 欧美视频国产精品| 狠狠色丁香久久婷婷综合丁香| 亚洲国产成人高清精品| 在线视频欧美一区| 久久―日本道色综合久久| 亚洲人成在线影院| 久久国产精品久久久| 欧美精品久久久久久久久老牛影院 | 欧美影视一区| 欧美激情欧美狂野欧美精品| 国产精品视频一区二区三区| 亚洲第一精品影视| 性欧美video另类hd性玩具| 美女91精品| 亚洲午夜一区二区| 欧美华人在线视频| 激情校园亚洲| 亚洲欧美另类久久久精品2019| 久久综合久久综合这里只有精品| 亚洲精品久久久久久久久| 久久av一区二区| 国产精品久久国产三级国电话系列| 国产伦精品一区二区三区免费 | 欧美激情在线有限公司| 亚洲综合丁香| 欧美日韩亚洲国产精品| 91久久极品少妇xxxxⅹ软件| 久久精品国产亚洲精品 | 亚洲精品资源| 久久深夜福利| 国产主播一区二区| 亚洲欧美日韩综合国产aⅴ| 亚洲人成高清| 欧美高清视频一区二区三区在线观看 | 亚洲少妇中出一区| 亚洲大片在线| 久久久久se| 国产乱码精品一区二区三区不卡| 亚洲伊人第一页| 亚洲乱码视频| 欧美日韩你懂的| 一本久久综合亚洲鲁鲁| 亚洲激情视频网| 欧美激情小视频| 亚洲美女色禁图| 亚洲日本电影在线| 欧美精品一线| 亚洲视频精选| 亚洲一级在线观看| 国产精品资源| 久久精品视频在线看| 欧美伊人久久久久久午夜久久久久| 国产嫩草一区二区三区在线观看| 亚洲欧美在线磁力| 香蕉久久夜色精品| 红桃视频国产一区| 欧美激情视频一区二区三区在线播放 | 亚洲国产欧美不卡在线观看| 蜜桃av一区二区三区| 亚洲免费观看高清完整版在线观看熊| 欧美黄色片免费观看| 欧美精品九九| 欧美一区二区三区精品电影| 欧美在线观看日本一区| 又紧又大又爽精品一区二区| 亚洲七七久久综合桃花剧情介绍| 欧美日韩高清在线| 久久国产日本精品| 鲁大师影院一区二区三区| 日韩视频在线一区二区| 亚洲视频精选在线| 国产一区激情| 亚洲人成在线免费观看| 国产欧美婷婷中文| 亚洲第一综合天堂另类专| 欧美日韩免费观看一区二区三区| 香蕉免费一区二区三区在线观看| 久久精品卡一| 亚洲午夜国产成人av电影男同| 亚洲欧洲av一区二区| 亚洲黄色成人久久久| 亚洲午夜精品一区二区三区他趣| 狠狠操狠狠色综合网| 亚洲免费高清| 在线播放豆国产99亚洲| 一区二区三区精品视频| 尤物在线观看一区| 亚洲男人第一网站| 亚洲靠逼com| 久久精品二区亚洲w码| 亚洲网站在线观看| 蜜桃av一区二区三区| 久久亚洲精品一区二区| 亚洲欧美在线播放| 亚洲精品久久| 久久精品成人欧美大片古装| 亚洲中字黄色| 欧美a级一区| 久久综合久久综合九色| 国产精品有限公司| 亚洲午夜羞羞片| 亚洲性感美女99在线| 欧美激情性爽国产精品17p| 免费影视亚洲| 国内精品久久久| 亚洲欧美在线一区| 亚洲在线视频| 国产精品videossex久久发布| 亚洲国产成人tv| 亚洲国产专区校园欧美| 久久婷婷综合激情| 蜜桃久久精品一区二区| 狠狠综合久久av一区二区小说| 欧美中文日韩| 久久一区二区三区四区| 国产亚洲成av人在线观看导航| 亚洲一区不卡| 欧美一区综合| 国产一区二区成人| 久久成人综合视频| 美国三级日本三级久久99| 极品少妇一区二区三区| 久久免费一区| 欧美黄色日本| 一本色道久久| 国产精品国产三级国产a| 亚洲一区二区三区在线播放| 欧美一区二区三区久久精品| 国产亚洲精品一区二555| 欧美在线视频全部完| 噜噜噜噜噜久久久久久91| 在线观看欧美视频| 欧美激情一区二区三区高清视频| 亚洲精品永久免费精品| 亚洲免费婷婷| 国内精品久久久久久久影视蜜臀| 久久国产精品网站| 亚洲国产1区| 亚洲女同在线| 韩国av一区二区三区| 久久久av毛片精品| 亚洲国内欧美| 午夜精品999| 精品91免费| 欧美日韩高清不卡| 欧美一区二区三区另类| 欧美电影打屁股sp| 9久草视频在线视频精品| 国产精品大全| 久久九九免费| 亚洲美女诱惑| 久久免费视频网| 99国产精品久久久久久久久久 | 亚洲欧美综合精品久久成人| 免费试看一区| 亚洲综合精品四区| 黄色成人av| 欧美视频在线免费看| 久久久久久亚洲精品中文字幕| 亚洲精品人人| 韩日精品视频| 欧美日韩国产片| 久久高清免费观看| 日韩小视频在线观看专区| 久久精品日产第一区二区| 最新亚洲电影| 国产午夜精品视频| 欧美老女人xx| 久久在线精品| 午夜精品区一区二区三| 亚洲另类在线视频| 欧美高清在线播放| 久久av二区| 亚洲欧美日韩国产综合精品二区| 亚洲国产精彩中文乱码av在线播放 | 亚洲视频免费| 亚洲精品视频在线观看免费| 麻豆freexxxx性91精品| 欧美在线观看你懂的| 亚洲图片欧洲图片av| 亚洲精品一区二区网址| 激情五月综合色婷婷一区二区| 国产精品一区免费在线观看|