遇到个难题,最近在弄个socket模块的服务器端,服务器端开启一个接收连接的线程来接收多个客户端的连接,每个客户端连接后都会把套接字、IP、端口用一个数据结构来存入hash_map,但是...
遇到个难题,最近在弄个socket模块的服务器端,服务器端开启一个接收连接的线程来接收多个客户端的连接,每个客户端连接后都会把套接字、IP、端口用一个数据结构来存入hash_map,但是问题是我对上层模块要对这些客户端发送数据,上层模块调用时,我不知道要向哪个客户端发送和接收消息,条件是不用参数l来确定客户端,之前是用Ip地址来识别,没有获得批准,大概需要的接口是 int sendmsg(char *data,unsigned int len);
不知道大家有没有好的方法?
有点明白了,既然IP不行,那就为每个登录的client分配一个唯一标记,或者用ip作为key,通过算法生成一个能够与IP互逆的new key, 用这个key来确定关键字。
我猜用ip不被批准的原因可能是安全考虑。那么只要这个算法保密,就应该可以了吧。反正本质上都是一样的。
感觉是不是用配置文件在上层写死好点,就几个IP间通信。
你可以多准备几个方案,列出各自的优缺点,让领导选择。