我网上找了一些相关资料,现在客户端和服务端成功连接了,客户端向服务端发送数据是很正常,可是我不知道服务端如何向客户端发送数据。如果是服务端向所有的客户端发送数据太简单了,问题是不能向指定的客户端发送数据。要是在服务端里保存所有客户端的socket数据也可以实现,但是服务端只能在内存上保存socket信息,如果同时有了上万个客户端上线那么服务端的承受不了吧?而且那时候内存里查找指定的客户端socket也很费劲。
请问各位大侠有什么办法向指定的客户端发送数据呢?
刚开始我打算把手机作为服务端,比如说客户端A向B发送数据的话A先登录服务端获取B的IP和端口,然后A当成客户端,B当成服务端,如果B没在线的话把数据暂时保存在服务器上等B上线。要是这样服务器的压力不会很大的,可是我把手机作为服务端后手机就无响应,(肯定一直在等待客户端请求连接)结果我放弃这个想法。如果哪位高手告诉我好一点的方案更好了。本人刚接触socket,不是很懂。
android socket 服务端问题
答案:2 悬赏:50 手机版
解决时间 2021-01-02 08:15
- 提问者网友:夢醒日落
- 2021-01-01 21:10
最佳答案
- 五星知识达人网友:西风乍起
- 2021-01-22 06:58
最近刚学习了android socket
根据我的理解以及参考到的一些代码,要实现点对点传输数据,向指定客户端传信息,的确就是通过内存上保存的socket。
你所担心的上万个客户端同时连接,是不应该发生在用手机作为服务器的情况下的,不然就是设计错误。(就是如果设计一个需要响应上万连接的话,服务器就不应该用手机)。
等待连接后无响应大概是你实现的有问题,等待连接不要把主线程给block住了。
根据我的理解以及参考到的一些代码,要实现点对点传输数据,向指定客户端传信息,的确就是通过内存上保存的socket。
你所担心的上万个客户端同时连接,是不应该发生在用手机作为服务器的情况下的,不然就是设计错误。(就是如果设计一个需要响应上万连接的话,服务器就不应该用手机)。
等待连接后无响应大概是你实现的有问题,等待连接不要把主线程给block住了。
全部回答
- 1楼网友:傲气稳了全场
- 2021-01-22 07:51
登录成功跳转页面 输入查询条件显示结果 不需要用到socket啊
socket属于直连接 当及时性要求高的时候才会用比如即时聊天
你的这个功能用get或者post的请求服务器就可以了
如果你要用socket写的化 并且多个activity用到
那么就就把socket的连接和循环读取并解析数据的代码放到一个静态类里
第一次调用连接 后面调用就无需再走连接代码
把每一次收到服务端信息的时候加一个interface作为回调分配个相应地页面就好了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯