我使用的SDK是simplelink_msp432e4_sdk_4_20_00_12,想要启用telnet功能,请问该要如何配置,包括IP,端口等
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,由于内容比较多,请点击下面的链接来查看工程师的回复:
下面是工程师的回复:
If you mean the service report callback, I just tweaked the one from the other TCP demos:
/** @brief Service report callback. * * May be set as the callback for various network config operation that are defined in the GUI. */ void serviceReport(uint32_t item, uint32_t status, uint32_t report, void *h) { static char *taskName[] = {"Telnet", "", "NAT", "DHCPS", "DHCPC", "DNS"}; static char *reportStr[] = {"", "Running", "Updated", "Complete", "Fault"}; static char *statusStr[] = {"Disabled", "Waiting", "IPTerm", "Failed","Enabled"}; Display_printf(display, 0, 0, "Service Status: %-9s: %-9s: %-9s: %03d\n", taskName[item - 1], statusStr[status], reportStr[report / 256], report & 0xFF); /* report common system issues */ if ((item == CFGITEM_SERVICE_DHCPCLIENT) && (status == CIS_SRV_STATUS_ENABLED) && (report & NETTOOLS_STAT_FAULT)) { Display_printf(display, 0, 0, "DHCP Client initialization failed; check your network.\n"); while (1); } }
Hi Ben,
It seems that the PC can link to device successfully but the device cannot enable Telnet service. I enter ”telnet 192.168.1.100 1000“ in Wndows Terminal like picture_1.
After hitting Enter key, it becoms shown in picture_2.
Throughout the process, I used WireShark tools to capture packets and the result is shown as picture_3. Please help to check it.
My PC IP is 192.168.1.20 and the device IP is 192.168.1.100. The Telnet port number is 1000.
Thanks~
Hi Ryan,
Ah, I can see why you might expect that to work, however:
Many of the sample projects use netIPAddrHook() to start a network task, with a hard coded port number, when an IP address has first been assigned.
Telnet is a service, so is started differently. When you check Telnet in the syscfg GUI, the following code is added to the generated code file ti_ndk_config.c. Here, the port number (telnet.param.Port = 23;) is generated according to the port parameter from the GUI Telnet settings.
/*
* ======== ti_ndk_config_telnet_init ========
* Configure and initialize Telnet server(s)
*/
extern SOCKET ConsoleOpen(struct sockaddr *pSinClient);static void ti_ndk_config_telnet_init(void *hCfg)
{
CI_SERVICE_TELNET telnet;/* Specify Telnet service for Telnet instance: CONFIG_TELNETS_0 */
/* NOTE! The application must provide the service report function matching this prototype! */extern void serviceReport(uint32_t item, uint32_t status,
uint32_t report, void *h);memset(&telnet, 0, sizeof(telnet));
telnet.cisargs.Mode = CIS_FLG_CALLBYIP;
telnet.cisargs.IPAddr = inet_addr("0.0.0.0");
telnet.cisargs.pCbSrv = serviceReport;
telnet.param.MaxCon = 8;
telnet.param.Port = 23;
telnet.param.Callback = &ConsoleOpen;CfgAddEntry(hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_TELNET, 0, sizeof(telnet), (unsigned char *)&telnet, 0);
}
If you edit this, it will get overwritten but I would recommend sticking with 23, at least until you get something working.
If you have added the service report function to the Telnet setting (like the sample I posted yesterday), you should get some message about Telnet (enabled or failed). Until it reports "enabled", you are not going to be able to connect.
Best regards
Jim