WinCE 下支持FTP 、Telnet以及Web Services
一、PB5.0中,“Core OS -> Communication services and
Networking->Servers”,然后我们会看到“FTP Server”和“Telnet Server”,选中这两项就可以了,接下来就是重新编译工程了
若匿名登录TELNET,在Platform.reg中加上
[HKEY_LOCAL_MACHINE/COMM/TELNETD]
"UseAuthentication"=dword:0
WINCE中启用FTP,添加FTP组件,在注册表Platform.reg 里面加入以下内容
[HKEY_LOCAL_MACHINE/Comm/FTPD]
"IsEnabled"=dword:1 //启用FTP
"UseAuthentication"=dword:0
"AllowAnonymous"=dword:1 //允许匿名访问
"AllowAnonymousUpload"=dword:1
"AllowAnonymousVroots"=dword:1
"DefaultDir"="//" //默认目录
编译并将NK.nb0烧到板子上,就可以FTP访问。
二、若想通过用户密码访问FTP,还需要有两步工作
1、通过NTLMSetUserInfo设置系统的用户名和密码,该函数可以对系统各个用户及密码进行动态维护;
NTLMSetUserInfo这个函数在ntlmssp.dll中
函数原型为BOOL NTLMSetUserInfo( LPTSTR pszUser, LPTSTR pszPassword );
通过BOOL NTLMDeleteUser( LPTSTR pszUser)可删除指定的用户。
2、将设置的用户名添加到FTP的UserList中,FTP就具备了用户名和密码;
[HKEY_LOCAL_MACHINE/Comm/FTPD]
"UserList"="admin"
若添加多个用户,则以";"分开.
三、修改注册表的方法有两种,
方法一是利用程序代码来进行修改,代码如下:
_tcscpy (szTemp, TEXT('Comm//FTPD'));
hKey = NULL;
hRes = RegCreateKeyEx (HKEY_LOCAL_MACHINE, szTemp, 0, NULL,
REG_OPTION_NON_VOLATILE, 0, NULL,
&hKey, &dwDisp);
if (hKey != NULL)
{
dwSize = 0;
RegSetValueEx (hKey, TEXT('AllowAnonymous'), 0, REG_MULTI_SZ,
(const BYTE *)&dwSize, sizeof(DWORD));
dwSize = 1;
RegSetValueEx (hKey, TEXT('UseAuthentication'), 0, REG_MULTI_SZ,
(const BYTE *)&dwSize, sizeof(DWORD));
RegFlushKey( hKey );
}
if (hKey)
RegCloseKey (hKey);
方法二是利用在调试连接成功的前提下,在eVC下利用工具中Tools->Remote Registy Editor(WCE500)连接成功后,选择HKEY_LOCAL_MACHINE下的Comm–>FTPD中的参数进行修改,如下图所示:
注册表修改成功以后,然后就可直接调用相关的函数
BOOL NTLMSetUserInfo( LPTSTR pszUser, LPTSTR pszPassword );
来添加新的用户名和密码了,该函数定义在Ntlmssp.h 中。具体的设置代码如下:
_tcscpy( szUser, _T( 'Emtronix') );
_tcscpy( szPassword, _T( '86180660') );
bResult = NTLMSetUserInfo( szUser, szPassword );
在“Ntlmssp.h”中还包含了有关用户名、密码删除等API函数,用户可根据自身需求调用相关函数。
四、web server:
Communication Services and Networking/Servers/Web Server (HTTPD)
一般来说,WinCE启动后自动自动了 Web Server ,假如你的WinCE设备的IP地址为192.168.1.100
那么,你在PC上可以访问 http://192.168.1.100
如果成功,可以看到它默认的主页。
至于,停止、启动Web 服务,你可以用 services start httpd0:
停止服务:services stop httpd0:
查看当前服务状态(包括其它服务): services list