socket单个服务器 多个客户端的收发数据识别的问题。
遇到个难题,最近在弄个socket模块的服务器端,服务器端开启一个接收连接的线程来接收多个客户端的连接,每个客户端连接后都会把套接字、IP、端口用一个数据结构来存入has...
遇到个难题,最近在弄个socket模块的服务器端,服务器端开启一个接收连接的线程来接收多个客户端的连接,每个客户端连接后都会把套接字、IP、端口用一个数据结构来存入hash_map,但是问题是我对上层模块要对这些客户端发送数据,上层模块调用时,我不知道要向哪个客户端发送和接收消息,条件是不用参数l来确定客户端,之前是用Ip地址来识别,没有获得批准,大概需要的接口是 int sendmsg(char *data,unsigned int len);
不知道大家有没有好的方法? 展开
不知道大家有没有好的方法? 展开
1个回答
展开全部
是发送同样的数据?
那也简单吧,sendmsg向所有线程中发送data数据,(或者维护一个共享数据区,线程都访问此数据区)
由线程自己判断客户端IP是不是合法的,合法则发送,不合法则放弃。
-------------------------------------------------------------------------------------
不好意思,又读了一遍问题,刚才看拧了。
那发送给哪些客户端总得有一个依据吧,这个依据是什么?
发送数据时,是不是不同的数据针对不同的客户端?
那也简单吧,sendmsg向所有线程中发送data数据,(或者维护一个共享数据区,线程都访问此数据区)
由线程自己判断客户端IP是不是合法的,合法则发送,不合法则放弃。
-------------------------------------------------------------------------------------
不好意思,又读了一遍问题,刚才看拧了。
那发送给哪些客户端总得有一个依据吧,这个依据是什么?
发送数据时,是不是不同的数据针对不同的客户端?
更多追问追答
追问
不是一样的数据
追答
那就是说数据与客户端之间有1-1的关系,既然这样,数据的发出者应该知道给谁发才对。
不清楚你的具体情况。回答不了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |