peakzhang 发表于 2007-12-28 23:44:19

服务器端怎样产生login seed?

server怎样产生用来唯一标识client的seed?
这个seed应该是个 int 类型 , 怎样让他不重复?
或者说登录后怎样让server唯一标识这个client 总不能用用户名把
我没写过服务器 这些还不清楚 大家是怎么实现的?
请赐教

peakzhang 发表于 2007-12-28 23:44:47

从0开始,逐个计数就成了

peakzhang 发表于 2007-12-28 23:44:52

如何验证可靠性呢 如果从0开始 逐个计数 这个seed就很容易猜到

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

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

那不是每次服务器收到消息都要去查数据库?

peakzhang 发表于 2007-12-28 23:44:59

如果是这种要求,那就复杂多了。
1、随机产生数字,但是需要查这个数字是否已经占用。
2、不用int,使用随机字符串
3、使用int,但是记录对应的IP+端口。
4、其它

peakzhang 发表于 2007-12-28 23:45:04

即使产生了一个唯一的ID

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

到底要怎样验证?

peakzhang 发表于 2007-12-28 23:45:11

根据SOCKET来判断即可,通过部分类的成员函数get_handle()获取

peakzhang 发表于 2007-12-28 23:45:17

1:如果你想要用户名产生唯一的ID。可以参考 java - String类的 hashcode实现。

2:ACE_Hash_Map_Manager能帮你构造快速的key-value查询

peakzhang 发表于 2007-12-28 23:45:24

u_long ACE_INET_Addr::hash( void    )const

Computes and returns hash value.
页: [1]
查看完整版本: 服务器端怎样产生login seed?