【创龙TMS320C665x开发板试用】基础(十七):SYSBIOS-NDK(4)

前几篇设置了NDK,配置了IP,那么接下来就要配置Telnet服务了。
记得前面的配置都使用了相应的结构体,Telnet的配置也是一样,使用了CI_SERVICE_TELNET结构体,这个结构体与配置DHCP时使用的结构很像。

 
 
可以看到它有成员的第一个结构体与NTPARAM_DHCP结构体是一样的,不同的是第二个成员,这里变成了一个NTPARAM_TELNET结构体。
那么NTPARAM_TELNET结构体的定义如下:

 
MaxCon:telnet会话的最大数目,范围是1到24。
Port:Telnet使用的TCP端口,Telnet默认是0。
(*Callback)(PSA),从名字上看就是Telnet的回调函数了。
 
  1. bzero(&telnet, sizeof(telnet));//将telnet清0
  2.     telnet.cisargs.IPAddr = INADDR_ANY;
  3.     telnet.cisargs.PCBSrv = &ServiceReport;
  4.     telnet.param.MaxCon   = 2;
  5.     telnet.param.Callback = &ConsoleOpen;
  6.     CfgAddEntry(hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_TELNET, 0, sizeof(telnet), (UINT8 *)&telnet, 0);
复制代码
 
可以看到Telnet的回调函数是ConsoleOpen。当在终端使用Telnet服务时,通过调用ConsoleOpen 函数进 入Telnet服务, 该函数为telnet.param.CallBack的参数。
函数的原型为:
 
  1. SOCKET ConsoleOpen( PSA pClient )
  2. {
  3.     HANDLE fd1, fd2;
  4.  
  5.     // Create the local pipe - abort on error
  6.     IF( pipe( &fd1, &fd2 ) != 0 )
  7.         return( INVALID_SOCKET );
  8.  
  9.     // If an instance is already running, abort
  10.     if( hConsole )
  11.     {
  12.         // If the console is already running, return a quick message and
  13.         // close the pipe.
  14.         send( fd2, StrBusy, strlen(StrBusy), 0 );
  15.         fdClose( fd2 );
  16.     }
  17.     else
  18.     {
  19.         // Create the console thread
  20.         hConsole = TaskCreate( console, "Console", OS_TASKPRINORM, 0x1000,
  21.                                (UINT32)fd2, (UINT32)pClient, 0 );
  22.  
  23.         // Close the pipe and abort on an error
  24.         if( !hConsole )
  25.         {
  26.             send( fd2, StrError, strlen(StrError), 0 );
  27.             fdClose( fd2 );
  28.         }
  29.     }
  30.  
  31.     // Return the local fd
  32.     return( fd1 );
  33. }
复制代码
 
由于接下来的几篇都是NDK的讲解与使用方法的说明,在NDK的最后一篇将把所有的源码与二进制文件上传。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值