最近一段时间比较闲,所以研究了一下te6410的网络服务问题,毕竟现在这个功能还是很实用,以下是本人不断实验和网上搜资料得到的结果,给其他同学一点借鉴,之所有写出来是因为我因为这个问题困扰了好长时间,相信也有跟我类似经历的同学。
Te6410构建web服务器和ftp服务器的步骤 本文所说都是基于te6410在wince下的操作,wince系统自带了web服务和ftp服务,我们只需在bsp中把相应的功能模块加载进去,然后重新编译。 一、打开bsp demo工程,在WinCE6.0中,打开“Catalog Items View”,然后依次选择“Core OS”->"CEBASE"->"Communication Services and Networking"->"Servers",然后我们会看到“FTP Server”、“Telnet Server”以及“Web Server”,选中这三项就可以了,接下来就是重新编译工程了。 “Catalog Items View”的具体位置在“View”菜单“Other Windows”下面,如下图
1
二、修改注册表(这里主要是针对FTP服务器) 在platform.reg下面添加注册表内容:
[HKEY_LOCAL_MACHINE\COMM\FTPD]
"IsEnabled"=dword:1
"UseAuthentication"=dword:1
"AllowAnonymous"=dword:0
"DefaultDir"="\\NandFlash\\"
"UserList"=" Admin;Guest "
其中:
"IsEnabled"=dword:1(CE系统启动时开启FTP服务)
"UseAuthentication"=dword:1(访问FTP服务器时需要使用用户名和密码)
"AllowAnonymous"=dword:0(不允许匿名访问)
"DefaultDir"="\\NandFlash\\"(FTP服务器的工作目录)
"UserList"="Admin;Guest"(允许访问FTP服务器的用户列表) 添加FTP Server组件之后,和其相关的默认注册表设置也会被添加进来,应该是被添加进了servers.reg文件中,我们在platform.reg文件中添加的注册表内容会覆盖这些默认设置。 设置登录密码,
1、通过NTLMSetUserInfo设置系统的用户名和密码,该函数可以对系统各个用户及密码进行动态维护;
NTLMSetUserInfo这个函数在ntlmssp.dll中
函数原型为BOOL NTLMSetUserInfo( LPTSTR pszUser, LPTSTR pszPassword );
通过BOOL NTLMDeleteUser( LPTSTR pszUser)可删除指定的用户。 示例代码: #include <Ntlmssp.h> #pragma comment(lib, "Ntlmssp.lib") TCHAR szUser[80], szPassword[80];
BOOL bResult;
_tcscpy( szUser, _T( "Admin") );
_tcscpy( szPassword, _T( "123") );
bResult = NTLMSetUserInfo( szUser, szPassword ); 备注,有些同学可能会出现编译的时候,NTLMSetUserInfo这个函数找不到,解决办法是在定制系统时勾选上Core OS ->CEBASE->Security->SSPI->NTML,(如下图2)然后在系统的windows目录下就可见ntlmssp.dll。 同时需要将ntlmssp.lib这个文件拷贝到C:\Program Files\Windows CE Tools\wce600\TE6410 Board\Lib\ARMV4I目录下面,原因是#pragma comment(lib, "Ntlmssp.lib")这句话导入dll是从wince系统目录下找文件的。 在c#中,调用: [DllImport("ntlmssp.dll")] public static extern bool NTLMSetUserInfo(String pszUser, String pszPassword); [DllImport("ntlmssp.dll")] public static extern bool NTLMDeleteUser(String pszUser); 添加用户:NTLMSetUserInfo("admin", "123"); 删除用户:NTLMDeleteUser("zhongbao"); /PS:以上user为ftp用户名,pass为ftp密码,host为ftp服务器地址,或者通过LeapFTP专业软件去访问,然后做你自己想做的事。 但是以上两者数据传输速度超慢,不知道是我局域网的原因还是其它什么原因。 |