socket指定客户发送消息

n个客户端连接服务器,其中a发起请求(TCP),
服务器想把a的消息指定发送某几个客户端
请问有什么可行的实现策略吗

阅读 3.1k
1 个回答

思考了下,大致逻辑如下。

  1. 所有客户端请求连接服务器端;
  2. 客户端a发送字节串,格式为【前缀命令+定界符+消息】,前缀命令就是你要指定发送的那几个IP地址,定界符可以用【rnrn】,也可以你自行指定;
  3. 在一个线程池里运行TCP服务器端的listener.accept(),设置一个queue用于储存指定发送的IP地址和消息;
  4. 每条线程的逻辑是,先decode接收到的字节串,然后解析出IP地址和消息并存入queue中;
  5. 同时每条线程中,检查自己的sock.getpeername()的IP地址是否存在于queue中,若存在,就发送消息,发完后删除queue中的该IP地址。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题