rodhai 2017-12-27 05:43 采纳率: 50%
浏览 2962
已采纳

socket向指令客户端发送消息问题

我写了一个socket服务端程序,A客户端长连接上来,我就把socket存在一个list里面,当B客户端发送数据上来,我就把数据发给A客户端,如何能够等待A客户端返回数据以后,我再返回数据返回给B客户端呢?每次等待A客户端发送数据上来,就在另外一个线程里面了,导致到B一直收不到返回信息。我想实现的是,B发送上来的时候我发给A,等待A返回数据后,再返回给B。
哪个大神有类似的代码demo,图片说明
图片上,这是个for循环,当B发送命令给服务端以后,我根据命令找到了目标A,发送命令给A了,如何等待A返回数据以后再返回给B呢,后面不知道如何实现

  • 写回答

8条回答 默认 最新

  • 小小农码 2017-12-29 04:11
    关注

    两种方式,第一,不经过服务器,直接ab点对点,把服务器的功能写到客户端,比如记录聊天记录什么饿
    第二,服务器端不要用list,用键值对,键就是客户端用户名,比如B ,当AB上线后,服务端记录socket,当B发消息给A时,中间经过服务器,这个时候就要求B的消息体中要告诉服务器我这个消息要发给谁,比如消息最前面是A,服务器收到后在键值对中找到A,这个时候标识一下,这个消息是B发来的,然后将这个标识连同消息一起发送给A,A回复时也是一样的逻辑,
    总结就是
    B-----服务器 这一步需要告诉服务器我给谁发消息
    ----服务器-----这一步服务器经过逻辑处理,知道这个消息来之于B,要发到A
    服务器------A 这一步服务器将消息给A 并且有一个标识告诉A 这个消息来之于B

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥150 HDMI分路器LT86102 的输出在890MHz频点处EMC超标8DB
  • ¥36 如何安全的迁移用户C盘用户文件(戴尔电脑)
  • ¥15 druid(相关搜索:数据库|防火墙)
  • ¥15 大一python作业
  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥60 如何鉴定微信小程序数据被篡改过
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥20 手机截图相片分辨率降低一半