找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4222|回复: 7

服务器端怎样产生login seed?

[复制链接]
发表于 2007-12-28 23:44:19 | 显示全部楼层 |阅读模式
server怎样产生用来唯一标识client的seed?
这个seed应该是个 int 类型 , 怎样让他不重复?
或者说登录后怎样让server唯一标识这个client 总不能用用户名把
我没写过服务器 这些还不清楚 大家是怎么实现的?
请赐教
 楼主| 发表于 2007-12-28 23:44:47 | 显示全部楼层
从0开始,逐个计数就成了
 楼主| 发表于 2007-12-28 23:44:52 | 显示全部楼层
如何验证可靠性呢 如果从0开始 逐个计数 这个seed就很容易猜到

别的客户也用这个seed发消息给我 我怎么判断?

根据登录时的IP地址吗(登录的时候把IP纪录下来)?

那不是每次服务器收到消息都要去查数据库?
 楼主| 发表于 2007-12-28 23:44:59 | 显示全部楼层
如果是这种要求,那就复杂多了。
1、随机产生数字,但是需要查这个数字是否已经占用。
2、不用int,使用随机字符串
3、使用int,但是记录对应的IP+端口。
4、其它
 楼主| 发表于 2007-12-28 23:45:04 | 显示全部楼层
即使产生了一个唯一的ID

还是无法判断发送过来的数据是不是该ID用户发送的(UDP情况下)

到底要怎样验证?
 楼主| 发表于 2007-12-28 23:45:11 | 显示全部楼层
根据SOCKET来判断即可,通过部分类的成员函数get_handle()获取
 楼主| 发表于 2007-12-28 23:45:17 | 显示全部楼层
1:如果你想要用户名产生唯一的ID。可以参考 java - String类的 hashcode实现。

2:ACE_Hash_Map_Manager能帮你构造快速的key-value查询
 楼主| 发表于 2007-12-28 23:45:24 | 显示全部楼层
u_long ACE_INET_Addr::hash  ( void    )  const [virtual]

Computes and returns hash value.
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 07:15 , Processed in 0.028199 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表