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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mysqurt.c

?? MS-Press book about programming under Windows CE with source-codes of examples
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
        closesocket (s_sock);
        return -3;
    }
    // Wait for remote requests.
    while (fContinue) {
        // Block on accept.
        nSize = sizeof (t_iraddr);
        t_sock = accept (s_sock, (struct sockaddr *)&t_iraddr, &nSize);
        if (t_sock == INVALID_SOCKET) {
            Add2List (hWnd, TEXT (" accept failed %d"),
                      GetLastError());
            break;
        }
        Add2List (hWnd, TEXT ("sock accept..."));
        hThread = CreateThread (NULL, 0, SenderThread,
                                (PVOID)t_sock, 0, &rc);
        if (hThread)
            CloseHandle (hThread);
    }
    closesocket (s_sock);
    return rc;
}
//======================================================================
// SenderThread - Sends the file requested by the remote device
//
int SenderThread (PVOID pArg) {
    SOCKET t_sock = (SOCKET)pArg;
    int nCnt, nFileSize, rc;
    TCHAR szFileName[MAX_PATH];
    PBYTE pBuff, pPtr;
    HWND hWnd = hMain;
    HANDLE hFile;

    Add2List (hWnd, TEXT ("sender thread entered"));

    // Read the number of bytes in the filename.
    rc = recv (t_sock, (PBYTE)&nCnt, sizeof (nCnt), 0);
    if ((rc == SOCKET_ERROR) || (nCnt > MAX_PATH)) {
        Add2List (hWnd, TEXT ("failed receiving name size"));
        closesocket (t_sock);
        return -1;
    }

    // Read the filename.
    rc = recv (t_sock, (PBYTE)&szFileName, nCnt, 0);
    if (rc == SOCKET_ERROR) {
        Add2List (hWnd, TEXT ("failed receiving name"));
        closesocket (t_sock);
        return -2;
    }
    Add2List (hWnd, TEXT ("name: %s"), szFileName);
    hFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ,
                        NULL, OPEN_EXISTING, 0, NULL);
    if (hFile == INVALID_HANDLE_VALUE) {
        Add2List (hWnd, TEXT ("file opened failed. rc %d"),
                  GetLastError());
        rc = BAD_FILEOPEN;
    } else {
        rc = 0;
        nFileSize = GetFileSize (hFile, NULL);

        // Allocate buffer and read file.
        pBuff = LocalAlloc (LPTR, nFileSize);
        if (pBuff) {
            ReadFile (hFile, pBuff, nFileSize, &nCnt, NULL);
            if (nCnt != nFileSize)
                rc = BAD_FILEREAD;
        } else
            rc = BAD_MEMORY;
    }
    // Start transfer. First send size and get acknowledgment.
    if (!rc) {
        // Send file size. Size will always be < 2 GB.
        rc = send (t_sock, (PBYTE)&nFileSize, sizeof (nFileSize), 0);
        if (rc == SOCKET_ERROR)
            rc = BAD_SOCKET;
        else
            // Receive acknowledgment of file size.
            recv (t_sock, (PBYTE)&rc, sizeof (rc), 0);
    }
    // Send the file.
    pPtr = pBuff;
    while ((!rc) && nFileSize) {
        // Send up to the block size.
        nCnt = min (BLKSIZE, nFileSize);
        rc = send (t_sock, pPtr, nCnt, 0);
        if (rc == SOCKET_ERROR) {
            Add2List (hWnd, TEXT ("send error %d "), GetLastError());
            rc = BAD_SOCKET;
        } else
            Add2List (hWnd, TEXT ("sent %d bytes"), rc);
        pPtr += rc;
        nFileSize -= rc;

        // Receive acknowledgment.
        recv (t_sock, (PBYTE)&rc, sizeof (rc), 0);
    }
    // Send close code.
    if (rc != BAD_SOCKET)
        send (t_sock, (PBYTE)&rc, sizeof (rc), 0);

    closesocket (t_sock);
    // Clean up.
    if (hFile != INVALID_HANDLE_VALUE)
        CloseHandle (hFile);
    LocalFree (pBuff);
    Add2List (hWnd, TEXT ("sender thread exit"));
    return 0;
}
//----------------------------------------------------------------------
// GetFile - Reads a file from the remote device
//
int GetFile (HWND hWnd, TCHAR *szFileName) {
    SOCKET c_sock;
    HANDLE hFile;
    INT rc, nSize, i, nFileSize, nCnt;
    char cDevice[256];
    SOCKADDR_IRDA iraddr;
    DEVICELIST *pDL;
    STORE_INFORMATION si;
    PBYTE pBuff;

    // Open an infrared socket.
    c_sock = socket (AF_IRDA, SOCK_STREAM, 0);
    if (c_sock == INVALID_SOCKET) {
        Add2List (hWnd, TEXT ("sock failed. rc %d"), WSAGetLastError());
        return 0;
    }
    // Search for someone to talk to.
    for (i = 0; i < 5; i++) {
        memset (cDevice, 0, sizeof (cDevice));
        nSize = sizeof (cDevice);
        rc = getsockopt (c_sock, SOL_IRLMP, IRLMP_ENUMDEVICES,
                         cDevice, &nSize);
        if (rc)
            Add2List (hWnd, TEXT ("getsockopt failed. rc %d"),
                      WSAGetLastError());

        pDL = (DEVICELIST *) cDevice;
        if (pDL->numDevice)
            break;
        Sleep(500);
    }
    // If no device found, exit.
    if (pDL->numDevice == 0) {
        closesocket (c_sock);
        return -1;
    }

    // Copy address of found device.
    memset (&iraddr, 0, sizeof (iraddr));
    iraddr.irdaAddressFamily = AF_IRDA;
    memcpy (iraddr.irdaDeviceID, pDL->Device[0].irdaDeviceID, 4);
    // Now initialize the specific socket we're interested in.
    memcpy (iraddr.irdaServiceName, chzAppName, sizeof (chzAppName)+1);

    Add2List (hWnd, TEXT ("Found: %hs"), pDL->Device[0].irdaDeviceName);
    // Connect to remote socket.
    rc = connect (c_sock, (struct sockaddr *)&iraddr, sizeof (iraddr));
    if (rc) {
        Add2List (hWnd, TEXT ("connect failed. rc %d"),
                  WSAGetLastError());
        closesocket (c_sock);
        return -4;
    }
    Add2List (hWnd, TEXT ("connected..."));

    // Send name size.
    nCnt = (lstrlen (szFileName) + 1) * sizeof (TCHAR);
    rc = send (c_sock, (PBYTE)&nCnt, sizeof (nCnt), 0);
    if (rc != SOCKET_ERROR) {
        // Send filename.
        rc = send (c_sock, (PBYTE)szFileName, nCnt, 0);
    }
    pBuff = LocalAlloc (LPTR, BLKSIZE);        // Create buffer for file
    // Receive file size.
    rc = recv (c_sock, (PBYTE)&nFileSize, sizeof (nFileSize), 0);
    Add2List (hWnd, TEXT ("received file size of %d bytes"), nFileSize);
    if ((rc != SOCKET_ERROR) && (nFileSize > 0)) {

        GetStoreInformation (&si);
        Add2List (hWnd, TEXT ("free space of %d bytes"), si.dwFreeSize);
        if ((INT)si.dwFreeSize < nFileSize + 1000)
            rc = BAD_FILESIZE;
        else
            rc = GOOD_XFER;

        if (rc == GOOD_XFER) {
            // Create the file.  Overwrite if user says so.
            hFile = CreateFile (szFileName, GENERIC_WRITE, 0, NULL,
                           CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
            if (hFile == INVALID_HANDLE_VALUE) {
                if (GetLastError() == ERROR_FILE_EXISTS) {
                    i = MessageBox (hWnd,
                           TEXT ("File already exists. Replace?"),
                           szAppName, MB_YESNO);
                    if (i == IDYES)
                        hFile = CreateFile (szFileName,
                             GENERIC_WRITE, 0, NULL,
                             CREATE_ALWAYS,
                             FILE_ATTRIBUTE_NORMAL, NULL);
                }
            }
        }
        if (hFile == INVALID_HANDLE_VALUE) {
            Add2List (hWnd, TEXT ("File Open failed. rc %d"),
                      GetLastError());
            rc = BAD_FILEWRITE;
        }
        // Send acknowledgment code.
        Add2List (hWnd, TEXT ("Sending size ack."));
        send (c_sock, (PBYTE)&rc, sizeof (rc), 0);
        //
        // Receive file.
        //
        while ((!rc) && (nFileSize > 0)) {

            nCnt = min (BLKSIZE, nFileSize);
            for (nSize = 0; nSize < nCnt;) {
                i = recv (c_sock, pBuff+nSize, nCnt-nSize, 0);
                if (i == SOCKET_ERROR) {
                    Add2List (hWnd, TEXT ("recv socket err %d"),
                              GetLastError());
                    rc = BAD_SOCKETRECV;
                    break;
                }
                nSize += i;
            }
            Add2List (hWnd, TEXT ("recv'd %d bytes."), nSize);
            if (i) {
                if (!WriteFile (hFile, pBuff, nSize, &i, 0))
                    rc = BAD_FILEWRITE;
                nFileSize -= i;
            } else
                Sleep(50);
            // Send acknowledgment of packet.
            send (c_sock, (PBYTE)&rc, sizeof (rc), 0);
        }
    } else if (rc == BAD_FILEOPEN)
        Add2List (hWnd, TEXT ("File not found."));
    Add2List (hWnd, TEXT ("receive finished"));

    CloseHandle (hFile);
    closesocket (c_sock);
    LocalFree (pBuff);
    return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本高清成人免费播放| 亚洲自拍偷拍av| 久久久久久影视| 2020日本不卡一区二区视频| 精品日韩在线观看| 精品人在线二区三区| 精品国精品国产尤物美女| 欧美变态口味重另类| 久久久青草青青国产亚洲免观| 日韩精品资源二区在线| 日韩精品一区二| 日韩欧美国产午夜精品| 国产精品久久久久久妇女6080 | 欧美日本视频在线| 欧美午夜精品久久久久久超碰| 欧美性色黄大片| 欧美午夜免费电影| 欧美一区二区福利视频| 精品精品国产高清a毛片牛牛| 日韩美一区二区三区| 久久久久久久综合日本| 欧美激情一区二区三区在线| 亚洲欧美一区二区三区久本道91| 一区二区在线电影| 亚洲va国产天堂va久久en| 蜜桃一区二区三区在线| 久久99久久久久| 国产精品一区二区三区网站| 成人av免费在线| 精品视频在线免费| 欧美不卡在线视频| 国产精品丝袜久久久久久app| 一区二区三区在线免费| 日本中文在线一区| 国产成人鲁色资源国产91色综| 99久久婷婷国产综合精品电影| 欧美午夜在线一二页| 日韩三级精品电影久久久| 国产女主播在线一区二区| 亚洲综合一区二区精品导航| 日本vs亚洲vs韩国一区三区二区 | 丝瓜av网站精品一区二区 | 日韩欧美激情在线| 国产精品对白交换视频| 日本美女视频一区二区| 成人影视亚洲图片在线| 欧美日韩国产乱码电影| 国产亚洲欧美日韩在线一区| 亚洲国产视频在线| 国产露脸91国语对白| 91搞黄在线观看| 国产日本欧洲亚洲| 亚洲国产精品天堂| 岛国一区二区在线观看| 制服视频三区第一页精品| 欧美极品aⅴ影院| 日韩国产在线观看| 色综合天天综合狠狠| 精品少妇一区二区三区日产乱码 | 国产亚洲精品aa午夜观看| 一区二区三区精品视频在线| 精东粉嫩av免费一区二区三区| 91成人在线精品| 久久久综合激的五月天| 日产精品久久久久久久性色| 91色porny| 国产丝袜欧美中文另类| 日韩av电影天堂| 91免费看`日韩一区二区| 久久久亚洲国产美女国产盗摄 | 国产一区二区精品久久| 欧美精品久久99久久在免费线| 国产精品免费看片| 国产精品一区二区久激情瑜伽| 欧美日韩亚洲综合一区二区三区| 中文字幕一区av| 国产一区不卡视频| 日韩三级高清在线| 日韩和的一区二区| 在线观看日产精品| 亚洲精品视频一区二区| 成人动漫精品一区二区| www激情久久| 老司机精品视频导航| 欧美二区三区91| 亚洲综合av网| 在线观看日韩av先锋影音电影院| 国产精品国产三级国产普通话三级 | 国产sm精品调教视频网站| 日韩精品中文字幕在线一区| 亚洲电影激情视频网站| 日本韩国欧美一区二区三区| 国产精品热久久久久夜色精品三区 | 国产一区二区三区免费在线观看 | 日韩av电影免费观看高清完整版 | 欧美无人高清视频在线观看| 亚洲免费观看高清在线观看| 波多野结衣亚洲一区| 日本一区二区免费在线| 国产精品一区免费在线观看| 2021久久国产精品不只是精品| 极品少妇一区二区| 欧美精品一区二区在线播放| 激情六月婷婷久久| wwwwxxxxx欧美| 国产成人一级电影| 国产精品美女久久久久av爽李琼| 不卡影院免费观看| 亚洲同性同志一二三专区| 99久久综合狠狠综合久久| 亚洲欧洲成人自拍| 色综合一区二区| 午夜视黄欧洲亚洲| 欧美一区二区三区喷汁尤物| 老司机午夜精品| 国产日本欧洲亚洲| jvid福利写真一区二区三区| 亚洲人精品午夜| 欧美色大人视频| 日本亚洲一区二区| 久久午夜电影网| www.视频一区| 亚洲精品中文在线| 欧美一区二区三区在线视频| 精品一区二区在线播放| 亚洲国产精品激情在线观看| 色婷婷综合久色| 五月天视频一区| 精品久久久久久久久久久久久久久| 丁香六月综合激情| 一区二区三区在线观看动漫| 欧美精品粉嫩高潮一区二区| 激情偷乱视频一区二区三区| 国产欧美精品国产国产专区| 一本色道久久加勒比精品| 天堂精品中文字幕在线| 欧美成人三级在线| 成人黄色a**站在线观看| 一区二区视频免费在线观看| 日韩欧美国产精品| 懂色av中文一区二区三区| 一区二区三区在线视频观看| 91精品国产色综合久久| 成人高清视频在线观看| 亚洲一区二区影院| 国产亚洲综合在线| 欧美日韩一区二区三区在线| 国产精品资源在线观看| 一区二区三区在线观看网站| 欧美精品一区二区三区四区| 91论坛在线播放| 精品影院一区二区久久久| 成人免费在线观看入口| 精品少妇一区二区三区视频免付费| hitomi一区二区三区精品| 奇米888四色在线精品| 国产精品久久久久永久免费观看| 欧美日韩国产在线播放网站| 福利一区二区在线| 视频一区在线播放| 国产精品二三区| 精品国产91乱码一区二区三区 | 亚洲精品一区二区在线观看| 91视频免费观看| 国产精品996| 日韩av二区在线播放| 亚洲精品乱码久久久久久黑人| 亚洲精品在线观看视频| 欧美日韩三级一区二区| 成人免费视频app| 久久精品国产精品亚洲综合| 亚洲综合无码一区二区| 国产精品国产自产拍高清av王其| 精品国产乱码久久久久久牛牛| 在线视频综合导航| 成人免费黄色大片| 国产综合色视频| 日韩国产欧美在线观看| 亚洲永久免费av| 亚洲欧洲av色图| 国产亚洲一本大道中文在线| 日韩美女视频在线| 91.xcao| 欧美三级乱人伦电影| 色网综合在线观看| 成人高清免费观看| 国产成人无遮挡在线视频| 免费观看一级特黄欧美大片| 亚洲综合在线五月| 最新日韩av在线| 国产精品你懂的| 中文无字幕一区二区三区| 久久久久久久综合| 日韩久久精品一区| 日韩欧美在线影院| 91精品国产福利在线观看| 欧美日韩一区二区在线观看视频| 在线观看日韩毛片| 欧美亚洲综合网| 欧美三区在线视频|