<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0

    sockutil.cpp

    #include "stdafx.h"
    #include <iostream.h>
    #include <winsock2.h>
    #include "sockutil.h"
    void ShowError(unsigned int nError)
    {
    void* lpMsgBuf;
    FormatMessage(
    FORMAT_MESSAGE_ALLOCATE_BUFFER |
    FORMAT_MESSAGE_FROM_SYSTEM,
    NULL,
    nError,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    (LPTSTR) &lpMsgBuf,
    0, NULL );

    cout <<"(" << nError << "):" << lpMsgBuf;
    LocalFree(lpMsgBuf);
    }
    BOOL ErrorHandle(const char * position, BOOL condition, const char * file, unsigned int line)
    {
    if(!condition)
    {
    return condition;
    }
    cout <<file << "(" << line << ")" << endl;
    cout <<position<< endl;
    unsigned int nError = GetLastError();
    ShowError(nError);
    return condition;
    }
    void InitializeAddress(DWORD ip, UINT port, sockaddr_in & addr)
    {
    memset(&addr,0,sizeof(addr));
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr= ip;
    addr.sin_port = htons(port);
    }
    int SendData(SOCKET hSocket, const char * data, int length)
    {
    int result;
    int pos = 0;
    while(pos < length)
    {
    result = send(hSocket, data + pos, length - pos , 0);
    if(result > 0 )
    {
    pos += result;
    }else{
    return result;
    }
    }
    return length;
    }

    demo1.cpp

    // demo1.cpp : Defines the entry point for the console application.
    //
    #include "stdafx.h"
    #include <stdio.h>
    #include <winsock2.h>
    #pragma comment(lib,"ws2_32")
    #include "sockutil.h"
    int main(int argc, char* argv[])
    {
    unsigned short wVersion;
    WSADATA wsa;
    wVersion = MAKEWORD(2,2);
    if(ERRORHANDLE(WSAStartup(wVersion, &wsa) != 0))
    {
    return -1;
    }
    SOCKET hSocket;
    int a = PROTO_ICMP;
    hSocket = socket(AF_INET,SOCK_STREAM,0);
    if(ERRORHANDLE(hSocket == INVALID_SOCKET))
    {
    WSACleanup();
    return -1;
    }
    sockaddr_in addr;
    InitializeAddress(INADDR_ANY, 2000, addr);
    if(ERRORHANDLE(SOCKET_ERROR == bind(hSocket, (const sockaddr*) & addr, sizeof(addr))))
    {
    closesocket(hSocket);
    WSACleanup();
    return -1;
    }
    if(ERRORHANDLE(SOCKET_ERROR == listen(hSocket,5)))
    {
    closesocket(hSocket);
    WSACleanup();
    return -1;
    }
    SOCKET hClient;
    int size;
    char buffer[2048];
    int length;
    size = sizeof(addr);
    while(INVALID_SOCKET != (hClient = accept(hSocket,(sockaddr*)&addr, & size)))
    {
    size = sizeof(addr);
    while((length = recv(hClient, buffer, sizeof(buffer),0)) > 0)
    {
    SendData(hClient,buffer, length);
    }
    closesocket(hClient);
    }
    closesocket(hSocket);
    WSACleanup();
    return 0;
    }
    posted on 2008-07-03 15:21 SIMONE 閱讀(354) 評論(0)  編輯  收藏 所屬分類: C++
    主站蜘蛛池模板: 嫩草在线视频www免费观看| 国产精品冒白浆免费视频| 亚洲中文字幕久久久一区| 四虎影视永久免费视频观看| 野花香高清视频在线观看免费| 亚洲美女aⅴ久久久91| 免费jjzz在线播放国产| 无码日韩精品一区二区免费暖暖| 91在线亚洲综合在线| 亚洲区小说区图片区QVOD| 好男人www免费高清视频在线| 一个人看www免费高清字幕| 亚洲中文字幕久久精品无码2021| 亚洲国产成人久久精品99| 4虎永免费最新永久免费地址| 免费无码又爽又黄又刺激网站| 亚洲美女大bbbbbbbbb| 亚洲一区二区三区国产精品| 国产大片线上免费观看| 最新亚洲成av人免费看| 亚洲国产精品无码久久九九大片| 久久久久久亚洲精品中文字幕| 四虎影视免费永久在线观看| 亚洲一区免费在线观看| 精品国产福利尤物免费| 亚洲av无码成人精品区一本二本 | 黄桃AV无码免费一区二区三区| 亚洲视频无码高清在线| 亚洲成色WWW久久网站| 免费在线观看理论片| 一个人免费观看视频www| 暖暖免费日本在线中文| 国产精品成人亚洲| 国产亚洲精品bv在线观看| 久久亚洲精精品中文字幕| 精品亚洲视频在线观看| 免费国产不卡午夜福在线| 好吊妞788免费视频播放| 日本zzzzwww大片免费| 一区二区三区四区免费视频| 免费无码又爽又刺激网站直播|