[-急-] WinCE访问PC的共享文件问题!

ablewindy 2006-12-08 10:01:50
在一个局域网内有几十台WinCE的终端,他们去访问作为服务器(Windows2003 Server)的共享文件夹,发现有几对的计算机会访问互斥。
比如A、B是互斥的,A访问正常,B去访问,则A就会访问失败,A再去访问,B又会访问失败。

此时在服务器端(Windows2003 Server)“计算机管理-->系统工具-->共享文件夹-->会话”中查看当前访问的“计算机”,发现互斥的两台终端的名字都是一致的,形如:_CEDRD74EBF78。

每次重启终端后此名字都不同,所以,每次重启后互斥的终端都不同。

不知WinCE的访问的这个名字是怎么产生的(由于终端的CE都是烧录进去的,所以所有CE的设备名都是WindowsCE)?
有什么方法能避免这个问题?

多谢。
...全文
1586 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ablewindy 2006-12-20
  • 打赏
  • 举报
回复
未解决,看样子太麻烦了,结帖!
ablewindy 2006-12-16
  • 打赏
  • 举报
回复
经过多方查资料,发现那一串形如_CERAR的字符正是微软为了防止CE的设备名重复而产生的一个名,就是不知道它是怎么产生的,为什么重复的概率那么高。问微软的技术支持也不知其解。

研究了好久的CE内核代码也找到产生它的地方!

郁闷了。
继续求救!!!
红牛哥110 2006-12-14
  • 打赏
  • 举报
回复
实在不行,就自己写代码来实现.
ablewindy 2006-12-14
  • 打赏
  • 举报
回复
多谢 jiess(刘伟庭):
我们也在想是和什么有关系,但我们使用固定IP,固定设备名等方法试验过无效。
不论怎么样,每次设备启动后都会产生这个串,每次启动产生的都不同,但重复率很高!

崩溃了!!
ablewindy 2006-12-13
  • 打赏
  • 举报
回复
多谢 jiess(刘伟庭):
掉电是不能保存的!
第二种方法也试过,我们修改后设备名是变了,但访问服务器的文件夹时还是那个形如_CEDRD74EBF78的串。

我们用NetBIOS的命令nbtstat查询过终端的NetBIOS名字,如果终端没有改设备名,使用默认的WindowsCE作为设备名,则nbtstat查询不到终端的NetBIOS名字,如果更改了设备名,则查到的是设备名。

但就是得不到那个串,难道CE里有多个不同的NetBIOS名?还是那个串根本就不是NetBIOS名?谁知道这个名是怎么产生的?和什么有关?为什么会在同一网络内重复?怎么样避免他们在访问服务器时避免冲突的问题?

我们也查了一下访问时传输的会话包,发现用的的NBNS/NBSS协议。

继续求救!
红牛哥110 2006-12-13
  • 打赏
  • 举报
回复
_CEDRD74EBF78,我感觉与IP是有一定关系的.
你有空可以看看NetBIOS协议.
ablewindy 2006-12-12
  • 打赏
  • 举报
回复
WindowsCE的设备名和设备描述是可以改的(设备名就如同计算机的计算机名,WindowsCE的默认设备名都是WindowsCE),我们也改过这个试了,但在访问共享文件时,在服务器端得到还是那一串_CEDRD74EBF78名称。

郁闷中,向高手求教。
红牛哥110 2006-12-12
  • 打赏
  • 举报
回复
楼主还没告诉我们,你的wince的注册表信息掉电能保存吗?
如果不能的话,你只能用第二种方法试试看了.
红牛哥110 2006-12-12
  • 打赏
  • 举报
回复
你试一下我提出的两种方法:
1.将IP设成固定IP,重启wince.
2.用这个函数应当可以NETBIOS名字.
int sethostname(
char* pName,
int cName
);
ablewindy 2006-12-12
  • 打赏
  • 举报
回复
经过大量枯燥而细致的实验,发现这个名称和设备名、IP、MAC地址都没关系。
还试验了WINS服务器,也没结果。

要崩溃了!!!!!
再不行就要跳楼了……

救命啊!

难道WinCE就有这问题?
ablewindy 2006-12-12
  • 打赏
  • 举报
回复
继续求教!高手帮忙。
ablewindy 2006-12-11
  • 打赏
  • 举报
回复
继续求救!
msregister 2006-12-11
  • 打赏
  • 举报
回复
有意思,mark
hwndhwnd 2006-12-11
  • 打赏
  • 举报
回复
那个名字似乎是在注册表里面写的,看看Windows CE注册表下面的两个值是什么?

[HKEY_LOCAL_MACHINE\Ident]
"Name"=LOC_DEFAULTDEVICENAME
"Desc"=LOC_DEFAULTDEVICEDESC

尝试修改一下这个值。
ablewindy 2006-12-10
  • 打赏
  • 举报
回复
现已知道_CEDRD74EBF78类型的名字是NetBIOS名字。

由于每次启动每台终端产生的NetBIOS名字都不一致,所以每次冲突的终端都会变,不知谁知道怎么解决这种产生的NetBIOS名字的冲突问题?

我们试着做了一个WINS服用器,但这个WINS服务器只能检测到终端的设备名冲突,而似乎CE的NetBIOS名字与设备名没什么关系,还是有冲突的现象。
nhczp 2006-12-09
  • 打赏
  • 举报
回复
采用固定的IP地址,网关.
然后检查一下MAC.

如果还不行,只得一个一个的试找出出问题的机器啦.
ablewindy 2006-12-08
  • 打赏
  • 举报
回复
IP是DHCP动态分配的,MAC地址也是唯一的。
zaodt 2006-12-08
  • 打赏
  • 举报
回复
IP是动态分配的吗?

网卡地址有冲突吗?
ablewindy 2006-12-08
  • 打赏
  • 举报
回复
我们终端的WinCE是烧录进去的,我们生产的量很大,一个网内可能有上百个这样的终端,如果每个终端都烧不同的系统,这个不太现实,而且当前的问题是即使使用不同的设备名,共享访问的名字还是随机的。

各位有什么其它思路吗?
szy41 2006-12-08
  • 打赏
  • 举报
回复
up
加载更多回复(5)

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧