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

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

?? cbnbsvr.c

?? 一個(gè)很好的TCP和UDP端口控制的例子!稍加改動(dòng)
?? C
字號(hào):
// Module Name: Cbnbsvr.c
//
// Description:
//    This NetBIOS sample implements a server using the asynchronous
//    callback functions as opposed to asynch events.  The server
//    will add its name to each LANA number on the machine and post
//    a listen (NCBLISTEN) on each LANA in order to service client
//    requests.
//
// Compile:
//    cl -o cbnbsvr.exe cbnbsvr.c ..\Common\nbcommon.obj netapi32.lib
//
// Command Line Options:
//    NONE - The server automatically uses the NetBIOS name as
//           defined by the constant SERVER_NAME
//
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

#include "..\Common\nbcommon.h"

#define MAX_BUFFER      2048
#define SERVER_NAME     "TEST-SERVER-1"

DWORD WINAPI ClientThread(PVOID lpParam);

//
// Function: ListenCallback
//
// Description:
//    This function is called when an asynchronous listen completes.
//    If no error occured create a thread to handle the client.
//    Also post another listen for other client connections.
//
void CALLBACK ListenCallback(PNCB pncb)
{
    HANDLE      hThread;
    DWORD       dwThreadId;

    if (pncb->ncb_retcode != NRC_GOODRET)
    {
        printf("ERROR: ListenCallback: %d\n", pncb->ncb_retcode);
        return;
    }
    Listen(pncb->ncb_lana_num, SERVER_NAME);

    hThread = CreateThread(NULL, 0, ClientThread, (PVOID)pncb, 0, 
        &dwThreadId);
    if (hThread == NULL)
    {
        printf("ERROR: CreateThread: %d\n", GetLastError());
        return;
    }
    CloseHandle(hThread);

    return;
}

//
// Function: ClientThread
//
// Description:
//    The client thread blocks for data sent from clients and 
//    simply sends it back to them. This is a continuous loop
//    until the sessions is closed or an error occurs.  If
//    the read or write fails with NRC_SCLOSED then the session
//    has closed gracefully so exit the loop.
//
DWORD WINAPI ClientThread(PVOID lpParam)
{
    PNCB        pncb = (PNCB)lpParam;
    NCB         ncb;
    char        szRecvBuff[MAX_BUFFER];
    DWORD       dwBufferLen = MAX_BUFFER,
                dwRetVal = NRC_GOODRET;
    char        szClientName[NCBNAMSZ+1];

    FormatNetbiosName(pncb->ncb_callname, szClientName);

    while (1)
    {
        dwBufferLen = MAX_BUFFER;

        dwRetVal = Recv(pncb->ncb_lana_num, pncb->ncb_lsn,
			szRecvBuff, &dwBufferLen);
        if (dwRetVal != NRC_GOODRET)
            break;
        szRecvBuff[dwBufferLen] = 0;
        printf("READ [LANA=%d]: '%s'\n", pncb->ncb_lana_num, 
            szRecvBuff);

        dwRetVal = Send(pncb->ncb_lana_num, pncb->ncb_lsn,
			szRecvBuff, dwBufferLen);
        if (dwRetVal != NRC_GOODRET)
            break;
    }
    printf("Client '%s' on LANA %d disconnected\n", szClientName,
        pncb->ncb_lana_num);
 
    if (dwRetVal != NRC_SCLOSED)
    {
        // Some other error occured, hang up the connection
        //
        ZeroMemory(&ncb, sizeof(NCB));
        ncb.ncb_command = NCBHANGUP;
        ncb.ncb_lsn = pncb->ncb_lsn;
        ncb.ncb_lana_num = pncb->ncb_lana_num;

        if (Netbios(&ncb) != NRC_GOODRET)
        {
            printf("ERROR: Netbios: NCBHANGUP: %d\n", ncb.ncb_retcode);
            dwRetVal = ncb.ncb_retcode;
        }
        GlobalFree(pncb);
        return dwRetVal; 
    }
    GlobalFree(pncb);
    return NRC_GOODRET;
}

//
// Function: Listen
//
// Description:
//    Post an asynchronous listen with a callback function. Create
//    an NCB structure for use by the callback (since it needs a
//    global scope).
//
int Listen(int lana, char *name)
{
    PNCB        pncb = NULL;

    pncb = (PNCB)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, sizeof(NCB));
    pncb->ncb_command = NCBLISTEN | ASYNCH;
    pncb->ncb_lana_num = lana;
    pncb->ncb_post = ListenCallback;
    //
    // This is the name clients will connect to
    //
    memset(pncb->ncb_name, ' ', NCBNAMSZ);
    strncpy(pncb->ncb_name, name, strlen(name));
    //
    // An '*' means we'll take a client connection from anyone.  By
    // specifying an actual name here you restrict connections to
    // clients with that name only.
    //
    memset(pncb->ncb_callname, ' ', NCBNAMSZ);
    pncb->ncb_callname[0] = '*';

    if (Netbios(pncb) != NRC_GOODRET)
    {
        printf("ERROR: Netbios: NCBLISTEN: %d\n", pncb->ncb_retcode);
        return pncb->ncb_retcode;
    }
    return NRC_GOODRET;
}

//
// Function: main
//
// Description:
//    Initialize the NetBIOS interface, allocate some resources, add
//    the server name to each LANA, and post an asynch NCBLISTEN on
//    each LANA with the appropriate callback. Then wait for incoming
//    client connections, at which time, spawn a worker thread to
//    handle them. The main thread simply waits while the server
//    threads are handling client requests. You wouldn't do this in a
//    real application, but this sample is for illustrative purposes
//    only. 
//
int main(int argc, char **argv)
{
    LANA_ENUM   lenum;
    int         i,
                num;

    // Enumerate all LANAs and reset each one
    //
    if (LanaEnum(&lenum) != NRC_GOODRET)
        return 1;
    if (ResetAll(&lenum, 254, 254, FALSE) != NRC_GOODRET)
        return 1;
    //
    // Add the server name to each LANA and issue a listen on each
    //
    for(i = 0; i < lenum.length; i++)
    {
        AddName(lenum.lana[i], SERVER_NAME, &num);
        Listen(lenum.lana[i], SERVER_NAME);
    }

    while (1)
    {        
        Sleep(5000);
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
√…a在线天堂一区| 一道本成人在线| 欧美一级一级性生活免费录像| 亚洲少妇屁股交4| 风流少妇一区二区| 中文一区在线播放| 国产91精品久久久久久久网曝门| 亚洲精品一区二区三区精华液 | 国产精品国产三级国产三级人妇| 久久精品国产99国产| 91精品视频网| 蜜臀av一区二区三区| 欧美草草影院在线视频| 精品制服美女丁香| 精品国精品国产| 国产一区欧美日韩| 国产日本一区二区| 成人性生交大片| 中文字幕一区av| 一本久久精品一区二区| 亚洲最新视频在线播放| 91在线视频官网| 亚洲国产欧美在线| 9191成人精品久久| 国产美女视频91| 欧美mv日韩mv国产网站app| 国产一区视频在线看| 中文字幕高清一区| 在线观看视频一区| 亚洲二区视频在线| 精品国产制服丝袜高跟| 成人av资源下载| 一区二区三区中文字幕精品精品| 亚洲精品在线观看视频| 成人福利视频网站| 亚洲线精品一区二区三区| 欧美高清视频一二三区| 激情五月婷婷综合网| 国产精品视频在线看| 色婷婷亚洲精品| 精品一区二区日韩| 国产精品久久久久久久蜜臀| 欧美日韩性生活| 久草中文综合在线| 国产精品久久久久影院老司| 欧美日本在线一区| 美国三级日本三级久久99| 国产欧美日韩另类视频免费观看 | 6080午夜不卡| 床上的激情91.| 亚洲欧美中日韩| 日韩丝袜情趣美女图片| 国产.欧美.日韩| 天天综合色天天综合色h| 国产欧美综合色| 欧美一区二区三区小说| 91在线一区二区| 国产精品中文字幕欧美| 亚洲成在人线在线播放| 欧美经典一区二区| 亚洲欧美自拍偷拍色图| 欧美一级爆毛片| 在线免费观看一区| 一区二区三区国产| 国产色综合久久| 久久久欧美精品sm网站| 日韩一二三区不卡| 91精品久久久久久久久99蜜臂| 欧美吞精做爰啪啪高潮| 一本大道av伊人久久综合| 成人午夜看片网址| 不卡视频免费播放| 99久久伊人久久99| 99久久99久久精品免费观看| 国产福利电影一区二区三区| 国产乱码一区二区三区| 国产在线不卡视频| 国产精品亚洲视频| 成人高清免费观看| 色综合久久综合网97色综合 | 亚洲国产日日夜夜| 午夜私人影院久久久久| 五月综合激情网| 蜜芽一区二区三区| 精品一区二区三区免费毛片爱| 国内一区二区在线| 国产白丝网站精品污在线入口| 国产黄色精品网站| 成人久久视频在线观看| 一本色道久久加勒比精品 | 中文一区一区三区高中清不卡| 久久精品一区二区| 国产精品久久久久久久午夜片| 国产精品欧美一区喷水| 亚洲六月丁香色婷婷综合久久 | 91精品蜜臀在线一区尤物| 日韩精品一区二区三区视频| 欧美电视剧在线看免费| 欧美高清在线一区二区| 一区二区三区在线播放| 免费精品视频在线| 国产高清一区日本| 99精品视频在线播放观看| 欧美午夜精品久久久久久孕妇| 91精品在线麻豆| 亚洲精品一区二区三区在线观看| 中文字幕一区不卡| 视频一区免费在线观看| 国产馆精品极品| 在线日韩av片| 久久久99免费| 亚洲国产精品尤物yw在线观看| 六月丁香综合在线视频| 99精品视频在线播放观看| 欧美久久一二三四区| 久久精品综合网| 亚洲影视在线播放| 国产精品一品视频| 欧美性受xxxx| 亚洲一区二区免费视频| 国产高清成人在线| 欧美日韩电影在线| 亚洲国产成人在线| 免费成人在线观看视频| 91蝌蚪porny九色| 精品久久人人做人人爰| 亚洲最大成人综合| 国产乱码精品一区二区三区忘忧草| 99re亚洲国产精品| 精品国产污网站| 日韩av一区二区在线影视| 北条麻妃一区二区三区| 精品国内二区三区| 性感美女久久精品| 色综合久久综合| 国产日韩成人精品| 久久精品国产秦先生| 欧美狂野另类xxxxoooo| 中文字幕一区免费在线观看 | 日韩精品每日更新| 色吊一区二区三区| 中文字幕在线不卡一区二区三区| 麻豆一区二区三| 欧美群妇大交群中文字幕| 亚洲精品国产第一综合99久久| 国产mv日韩mv欧美| 久久天天做天天爱综合色| 视频精品一区二区| 欧美午夜一区二区三区免费大片| 国产精品第13页| 粉嫩一区二区三区性色av| 337p粉嫩大胆噜噜噜噜噜91av| 午夜不卡av在线| 国产精品久久久久影视| 国产成人久久精品77777最新版本| 欧美一级久久久久久久大片| 亚洲综合激情网| 色就色 综合激情| 亚洲精品免费看| 色诱亚洲精品久久久久久| 国产精品免费视频观看| 成人av资源在线| 国产人成一区二区三区影院| 精品亚洲国产成人av制服丝袜| 欧美日韩精品一区二区天天拍小说 | 欧美电视剧免费观看| 日韩av在线免费观看不卡| 91精品在线免费| 精品一区二区三区影院在线午夜| 在线不卡的av| 青娱乐精品视频在线| 日韩欧美在线综合网| 久久99精品国产| 久久精品一区二区三区不卡牛牛| 国产一区二区三区不卡在线观看| 久久综合九色综合久久久精品综合| 国产一区二区三区高清播放| 日本一区二区免费在线观看视频| 成人免费观看男女羞羞视频| 中文字幕在线不卡| 欧美在线一区二区三区| 首页亚洲欧美制服丝腿| 日韩欧美aaaaaa| 成人国产精品免费网站| 国产精品一二三四区| 国产欧美一区二区在线观看| thepron国产精品| 亚洲成人1区2区| 欧美成人aa大片| 99re热这里只有精品视频| 亚洲成av人影院在线观看网| 精品久久国产97色综合| av福利精品导航| 舔着乳尖日韩一区| 久久久久久久久久久久久久久99| av爱爱亚洲一区| 天堂一区二区在线免费观看| 国产亚洲自拍一区| 欧美亚洲国产怡红院影院| 久久精品国产亚洲aⅴ |