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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfgdemo.c

?? dm642網絡傳輸程序
?? C
字號:
//--------------------------------------------------------------------------
// IP Stack Test Program
//--------------------------------------------------------------------------
// CfgDemo.c
//
// TCP/IP Client Configuration Demo
//
// Author: Michael A. Denio
// Copyright 1999, 2000 by Texas Instruments Inc.
//-------------------------------------------------------------------------
#include <stdio.h>
#include <netmain.h>
#include <_stack.h>
#include "..\..\..\tools\common\console\console.h"
#include "..\..\..\tools\common\servers\servers.h"
#include "cfgdemo.h"

//---------------------------------------------------------------------------
// Version String
//
char *VerStr = "\nTCP/IP Stack Client Configuration Demo\n";

// Simulate a non-volatile configuration
//=====================================
UINT8 MainConfig[512];
int   MainConfigSize   = 0;
int   MainConfigValid  = 0;
//=====================================

// Our simulated boot entry point
static void   NetBoot();

// Routine to get IP address from Ping packet
static void GetIP( uint IfIdx );

// NC Callback Functions
static void   NetworkOpen();
static void   NetworkClose();
static void   NetworkIPAddr( IPN IPAddr, uint IfIdx, uint fAdd );

// Fun reporting function
void   ServiceReport( uint Item, uint Status, uint Report, HANDLE hCfgEntry );


//---------------------------------------------------------------------
// Main Entry Point
//---------------------------------------------------------------------
int main()
{}

//
// Main Thread
//
int StackTest()
{
    HANDLE   hCfg;
    char     *hn = "tidsp";
    int      rc;
    uint     tmp;

    //
    // THIS MUST BE THE ABSOLUTE FIRST THING DONE IN AN APPLICATION!!
    //
    rc = NC_SystemOpen( NC_PRIORITY_LOW, NC_OPMODE_INTERRUPT );
    if( rc )
    {
        printf("NC_SystemOpen Failed (%d)\n",rc);
        for(;;);
    }

    // Print a banner
    printf(VerStr);

    // Enable the EDMA interrupt - since the EDMA interrupt
    // is configurable, this one line of code has no home.
    //
    // NOTE: This code is not required for DM642, nor any
    //       driver environment that does not use EMDA sharing.
    //       However, it doesn't hurt to turn it on.
    C62_enableIER( 1<<8 );

    //
    // We'll build a phony "default" configuration in this routine.
    // It will simulate having a default configuration stored in
    // non-volatile storage
    //

    // Create a new configuration
    hCfg = CfgNew();
    if( !hCfg )
    {
        printf("Unable to open configuration\n");
        goto main_exit;
    }

    // Add our global hostname (to be claimed in all connected domains)
    CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_HOSTNAME, 0,
                 strlen(hn), (UINT8 *)hn, 0 );

    // Specify TELNET service
    {
        CI_SERVICE_TELNET telnet;

        bzero( &telnet, sizeof(telnet) );
        telnet.cisargs.IPAddr = INADDR_ANY;
        telnet.cisargs.pCbSrv = &ServiceReport;
        telnet.param.MaxCon   = 2;
        telnet.param.Callback = &ConsoleOpen;
        CfgAddEntry( hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_TELNET, 0,
                     sizeof(telnet), (UINT8 *)&telnet, 0 );
    }

    // Create RAM based WEB files for HTTP
    AddWebFiles();

    // Specify HTTP service
    {
        CI_SERVICE_HTTP http;

        bzero( &http, sizeof(http) );
        http.cisargs.IPAddr = INADDR_ANY;
        http.cisargs.pCbSrv = &ServiceReport;
        CfgAddEntry( hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_HTTP, 0,
                     sizeof(http), (UINT8 *)&http, 0 );
    }

    // We don't want to see debug messages less than WARNINGS
    tmp = DBG_WARN;
    CfgAddEntry( hCfg, CFGTAG_OS, CFGITEM_OS_DBGPRINTLEVEL,
                 CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&tmp, 0 );

    // Save the configuration to a linear buffer
    MainConfigSize = 0;
    CfgSave( hCfg, &MainConfigSize, 0 );
    printf("%d bytes required for save\n",MainConfigSize);
    if( MainConfigSize > sizeof( MainConfig ) )
        printf("FATAL: Config buffer too small\n");
    else
    {
        CfgSave( hCfg, &MainConfigSize, MainConfig );
        CfgFree( hCfg );

        // Now call what would really be the "boot" function
        NetBoot();
    }

    // Free the WEB files
    RemoveWebFiles();

    // Close the OS
main_exit:
    NC_SystemClose();
    return(0);
}


//---------------------------------------------------------------------
// Simulated Boot Entry Point
//---------------------------------------------------------------------
static void NetBoot()
{
    HANDLE   hCfg;
    int      rc;

    //
    // Initialize the OS
    //
    // Note - we normally call NC_SystemOpen() here, but its already
    // been done in this simulation.
    //

    //
    // Boot the system using stored configuration
    //
    // We keep booting until the function returns 0. This allows
    // us to have a "reboot" command.
    //
    do
    {
        // Create a new configuration
        hCfg = CfgNew();
        if( !hCfg )
        {
            printf("Unable to open configuration\n");
            break;
        }

        // Load the configuration
        CfgLoad( hCfg, MainConfigSize, MainConfig );

        // Start the stack
        rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );

        // Delete Configuration
        CfgFree( hCfg );
    } while( rc > 0 );

    //
    // Close the OS
    //
    // Note - we normally call NC_SystemClose() here, but its done for
    // us in this simulation.
    //
}


//
// System Task Code
//
static HANDLE hGetIP=0,hEcho=0,hData=0,hNull=0,hOob=0;

//
// NetworkOpen
//
// This function is called after the configuration has booted
//
static void NetworkOpen()
{
    // If we don't have any kind of IP in our configuration, we
    // do a "config by ping" function. The calling parameter is the
    // interface index to configure.
    if( !MainConfigValid )
        hGetIP = TaskCreate( GetIP, "GetIP", OS_TASKPRINORM, 0x1000, 1, 0, 0 );

    // Create our local servers
    hEcho = TaskCreate( echosrv, "EchoSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0 );
    hData = TaskCreate( datasrv, "DataSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0 );
    hNull = TaskCreate( nullsrv, "NullSrv", OS_TASKPRINORM, 0x1400, 0, 0, 0 );
    hOob  = TaskCreate( oobsrv,   "OobSrv", OS_TASKPRINORM, 0x1000, 0, 0, 0 );
}

//
// NetworkClose
//
// This function is called when the network is shutting down,
// or when it no longer has any IP addresses assigned to it.
//
static void NetworkClose()
{
    // Kill the GetIP task only if it didn't complete
    if( hGetIP )
        fdCloseSession( hGetIP );
    fdCloseSession( hOob );
    fdCloseSession( hNull );
    fdCloseSession( hData );
    fdCloseSession( hEcho );

    // Kill any active console
    ConsoleClose();

    // If we opened NETCTRL as NC_PRIORITY_HIGH, we can't
    // kill our task threads until we've given them the
    // opportunity to shutdown. We do this by manually
    // setting our task priority to NC_PRIORITY_LOW.
    TaskSetPri( TaskSelf(), NC_PRIORITY_LOW );

    if( hGetIP )
        TaskDestroy( hGetIP );
    TaskDestroy( hOob );
    TaskDestroy( hNull );
    TaskDestroy( hData );
    TaskDestroy( hEcho );
}

//
// NetworkIPAddr
//
// This function is called whenever an IP address binding is
// added or removed from the system.
//
static void NetworkIPAddr( IPN IPAddr, uint IfIdx, uint fAdd )
{
    IPN IPTmp;

    if( fAdd )
        printf("Network Added: ");
    else
        printf("Network Removed: ");

    // Print a message
    IPTmp = ntohl( IPAddr );
    printf("If-%d:%d.%d.%d.%d\n", IfIdx,
            (UINT8)(IPTmp>>24)&0xFF, (UINT8)(IPTmp>>16)&0xFF,
            (UINT8)(IPTmp>>8)&0xFF, (UINT8)IPTmp&0xFF );
}

//
// Service Status Reports
//
// Here's a quick example of using service status updates
//
static char *TaskName[]  = { "Telnet","HTTP","NAT","DHCPS","DHCPC","DNS" };
static char *ReportStr[] = { "","Running","Updated","Complete","Fault" };
static char *StatusStr[] = { "Disabled","Waiting","IPTerm","Failed","Enabled" };
void ServiceReport( uint Item, uint Status, uint Report, HANDLE h )
{
    printf( "Service Status: %-9s: %-9s: %-9s: %03d\n",
            TaskName[Item-1], StatusStr[Status],
            ReportStr[Report/256], Report&0xFF );
}


//
// GetIP()
//
// Use ICMP ECHO request to get IP address
//
#define MAXPACKET 1000 // max packet size
static void GetIP( uint IfIdx )
{
    SOCKET   s;
    struct   sockaddr from;
    char     *pBuf = 0;
    int      cc, fromlen;
    IPN      IPMe;
    ICMPHDR  *pIcHdr;
    IPHDR    *pIpHdr;
    int      IPHdrLen;
    CI_IPNET NA;

    // Allocate FDT
    fdOpenSession( TaskSelf() );

    // Create the ICMP Socket
    s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
    if( s == INVALID_SOCKET )
        goto abort;

    // Initialize the "from" address
    bzero( &from, sizeof(struct sockaddr));
    from.sin_family     = AF_INET;
    from.sin_len        = sizeof( from );

    // Allocate a working buffer
    if( !(pBuf = mmBulkAlloc( MAXPACKET )) )
        goto abort;

    printf("GetIP Ready\n");

    while(1)
    {
        // Receive ICMP packet data
        fromlen = sizeof(from);
        cc = (int)recvfrom( s, pBuf, MAXPACKET, 0, &from, &fromlen );
        if( cc < 0 )
            goto abort;

        // Get header pointers
        pIpHdr   = (IPHDR *)pBuf;
        IPHdrLen = (pIpHdr->VerLen & 0xF) * 4;
        pIcHdr   = (ICMPHDR *)(pBuf+IPHdrLen);

        // Verify the ICMP type is EHCO request
        if( pIcHdr->Type != ICMP_ECHO )
            continue;

        // Use the destination address as our IP address
        IPMe = RdNet32( &pIpHdr->IPDst );

        // Add the IP the the configuration
        // Assume the netmask is 255.255.255.0
        bzero( &NA, sizeof(NA) );
        NA.IPAddr = IPMe;
        NA.IPMask = inet_addr("255.255.255.0");
        strcpy( NA.Domain, "default.net" );
        if( CfgAddEntry( 0, CFGTAG_IPNET, IfIdx, 0,
                         sizeof(CI_IPNET), (UINT8 *)&NA, 0 ) >= 0 )
            break;
    }

abort:
    hGetIP = 0;

    printf("GetIP Closing\n");

    if( pBuf )
        mmBulkFree( pBuf );
    if( s != INVALID_SOCKET )
        fdClose( s );

    fdCloseSession( TaskSelf() );
    TaskExit();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大度的电影原声| 欧美日韩国产精选| 日本精品裸体写真集在线观看| 日韩欧美中文一区| 亚洲一区二区三区三| 风间由美一区二区三区在线观看| 欧美性videosxxxxx| 亚洲人成精品久久久久久| 国产一二三精品| 日韩欧美精品三级| 日韩高清一区在线| 欧洲国产伦久久久久久久| 中文字幕中文字幕中文字幕亚洲无线 | 欧美成人欧美edvon| 一区二区三区免费观看| 91在线观看污| 久久精品视频免费观看| 国产综合色在线| 日韩女优av电影| 久久国产精品色| 日韩一区二区三区免费观看| 亚洲成a人v欧美综合天堂下载| 在线免费观看一区| 亚洲一区av在线| 欧美三级日韩在线| 亚洲妇女屁股眼交7| 欧美性视频一区二区三区| 亚洲综合在线观看视频| 91麻豆视频网站| 一区二区视频免费在线观看| 人人超碰91尤物精品国产| 国产激情视频一区二区三区欧美| 日韩欧美资源站| 看片的网站亚洲| 日韩一区二区三区三四区视频在线观看 | 精一区二区三区| 欧美大胆一级视频| 狠狠v欧美v日韩v亚洲ⅴ| 日韩三级精品电影久久久| 麻豆国产欧美日韩综合精品二区 | 欧美一级黄色录像| 九色porny丨国产精品| 欧美不卡视频一区| 国产999精品久久| 中文字幕一区二区三区视频| 色婷婷综合激情| 亚洲精品久久7777| 欧美久久久久久久久中文字幕| 亚洲一区中文日韩| 日韩欧美高清在线| 国产精品灌醉下药二区| 91久久香蕉国产日韩欧美9色| 亚洲成人一区在线| 精品欧美一区二区三区精品久久| 国产一区二区三区四区五区美女| 国产精品人妖ts系列视频| 欧洲另类一二三四区| 免费高清不卡av| 国产精品麻豆视频| 欧美理论在线播放| 丰满少妇在线播放bd日韩电影| 亚洲激情网站免费观看| 日韩欧美一区二区三区在线| caoporn国产精品| 丝袜美腿一区二区三区| 国产精品女同一区二区三区| 国产一区二区三区在线观看免费视频 | 日韩电影在线一区| 国产日韩精品一区二区浪潮av| 国产露脸91国语对白| 欧美日韩国产经典色站一区二区三区| 国产精品人妖ts系列视频| 丰满少妇在线播放bd日韩电影| 色婷婷狠狠综合| 国产精品传媒入口麻豆| 久久精品国产精品青草| 国产91综合一区在线观看| 欧美电影免费观看完整版| 日韩avvvv在线播放| 欧美日产国产精品| 日本午夜精品视频在线观看| 欧美亚洲国产怡红院影院| 性欧美疯狂xxxxbbbb| 欧美经典一区二区| 7777女厕盗摄久久久| 不卡的av在线播放| 五月婷婷激情综合网| 亚洲女与黑人做爰| 亚洲国产精华液网站w| 日韩三级免费观看| 欧美日韩dvd在线观看| 91一区二区在线| 成人中文字幕电影| 国产一区二区三区蝌蚪| 青青草原综合久久大伊人精品 | 久久亚区不卡日本| 69p69国产精品| 在线观看网站黄不卡| 99久久免费视频.com| 国产成人亚洲综合a∨猫咪| 麻豆91精品视频| 久久人人97超碰com| 欧美日本一道本在线视频| 欧洲国内综合视频| 色八戒一区二区三区| 91丝袜美腿高跟国产极品老师 | 国产精品自在欧美一区| 日韩中文字幕区一区有砖一区 | 久久久精品tv| 26uuu色噜噜精品一区| 欧美成人乱码一区二区三区| 欧美年轻男男videosbes| 欧美亚洲国产一区在线观看网站| 日本韩国精品一区二区在线观看| 91亚洲精品久久久蜜桃网站| 日本道色综合久久| 欧美中文字幕久久| 欧美精品1区2区3区| 欧美一级免费观看| 欧美va亚洲va在线观看蝴蝶网| 日韩欧美一区在线| 久久这里只有精品6| 欧美高清在线一区| 亚洲三级小视频| 亚洲一区二区三区四区在线观看 | 日韩av成人高清| 青青青伊人色综合久久| 久久精品国产亚洲aⅴ| 美女视频网站久久| 韩国理伦片一区二区三区在线播放| 国内精品国产成人| 风间由美一区二区三区在线观看| 成人av影视在线观看| 99久久精品久久久久久清纯| 91精品福利视频| 日韩一级片网站| 中文子幕无线码一区tr| 亚洲精品国久久99热| 性做久久久久久久免费看| 麻豆极品一区二区三区| 风间由美中文字幕在线看视频国产欧美| 成人精品免费视频| 91成人免费电影| 26uuu精品一区二区| 亚洲色图一区二区三区| 亚洲成a人片综合在线| 国产综合色视频| 色爱区综合激月婷婷| 日韩午夜激情电影| 1024亚洲合集| 麻豆国产精品777777在线| www.成人网.com| 91精品国产综合久久国产大片| 久久精品人人爽人人爽| 亚洲综合成人网| 国产大陆亚洲精品国产| 欧美日本不卡视频| 日本一二三不卡| 蜜桃传媒麻豆第一区在线观看| 成人网在线播放| 日韩视频在线一区二区| 亚洲婷婷综合色高清在线| 久草热8精品视频在线观看| 91丝袜美腿高跟国产极品老师 | 这里只有精品免费| 国产精品国产三级国产aⅴ中文 | 免费人成网站在线观看欧美高清| 懂色一区二区三区免费观看| 欧美系列在线观看| 国产拍揄自揄精品视频麻豆| 日本欧美大码aⅴ在线播放| 99re热视频这里只精品| 久久中文字幕电影| 丝袜美腿一区二区三区| 色综合中文字幕| 国产视频一区不卡| 久久精品国产在热久久| 欧美视频一二三区| 亚洲欧美日韩人成在线播放| 国模无码大尺度一区二区三区| 日本道色综合久久| 亚洲色图在线播放| av网站免费线看精品| 久久精品亚洲精品国产欧美kt∨| 日韩黄色免费电影| 欧美日韩精品一区二区在线播放| 亚洲欧美日韩中文播放| 99久久综合99久久综合网站| 久久久久久久精| 正在播放一区二区| 欧美α欧美αv大片| 免费观看在线综合| 欧美一区二区在线免费观看| 香蕉成人伊视频在线观看| 欧洲亚洲精品在线| 一个色综合网站| 欧美日韩精品综合在线| 午夜视频久久久久久| 在线综合+亚洲+欧美中文字幕| 亚洲1区2区3区视频|