socket客户端如何知道自己是否连接到服务器?

zl_120 2017-09-06 11:21:47
服务器每监听到一个客户端的连接请求,就从线程池中取一个线程来处理客户端的连接请求,当客户端的连接请求数量达到服务器线程池能处理的上线,客户端如何知道自己是否连接到了服务端,或者说服务端是否有线程来处理该客户端的链接请求?
...全文
2930 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独的海啊 2018-10-12
  • 打赏
  • 举报
回复
客户端肯定能连接上 ,但是不一定会得到服务器的服务。应该这样理解。 那客户端应该在连接上一段时间之后没有收到服务器的响应就断开链接。服务器端如果发现没有线程处理这个连接也应该主动断开连接。
Lucay丶 2018-09-13
  • 打赏
  • 举报
回复
引用 5 楼 chb345536638 的回复:
你要追求一个妹子,然后跟对方表白让她做你女朋友,但对方没有理你,算连接上了吗


但是人家妹子确实收到表白了哦,算是连上了,


只是服务器并没有应答,
客户端应该发送心跳包,服务器每次收到心跳包要返回一个success这种的应答,来表示我收到了,
客户端和服务端如果超过一段时间都没有互相收到通知或者答复
就应该关闭socket连接
bluk44444 2018-01-29
  • 打赏
  • 举报
回复
首先服务端如果10个连接就达到了上限,那么服务端至少有11个线程吧。1个主线程,10个分线程。 所有的客户端请求应该都是先请求主线程吧,然后主线程来看是否能够分配。 其次,客户端连接服务端的时候,如果过一会连接不上,它自然知道连接失败了啊。
  • 打赏
  • 举报
回复
只应该关心服务器端多长时间相应自己的一次请求 --> 只应该关心服务器端多长响应相应自己的一次请求 所有的指标都是随时变动的。设计软件应该用不懂编程的人都懂的一些道理来作为根本依据,不要纠结来纠结去地搞太技术化的研究。
  • 打赏
  • 举报
回复
客户端只应该关心服务器端多长时间相应自己的一次请求,关心什么“多少个线程”干什么?客户端可以并行地测试10个服务器,然后选择一个应答最快的服务器作为继续连接的服务器,其它9个就关闭连接就行了。 真正懂技术的人其实不会过分技术化。过分技术化,其实不是真的技术。这是我的忠告。
zl_120 2017-09-07
  • 打赏
  • 举报
回复
服务器每监听到一个客户端的连接请求,就从线程池中取一个线程来处理客户端的连接请求,当客户端的连接请求数量达到服务器线程池能处理的上线,客户端如何知道自己是否连接到了服务端,或者说服务端是否有线程来处理该客户端的链接请求? 服务端ServerSocket的accept有监听到客户端的链接请求,但是线程池里已经没有足够的线程来处理该客户端的链接请求,这样该客户端就不算连接上服务端吧,但是客户端又没有报错,因为服务端已经监听到了它的连接请求 当服务端中有客户端下线,该客户端的链接请求就会被处理
  • 打赏
  • 举报
回复
你要追求一个妹子,然后跟对方表白让她做你女朋友,但对方没有理你,算连接上了吗
zl_120 2017-09-07
  • 打赏
  • 举报
回复
服务端ServerSocket的accept有监听到客户端的链接请求,但是线程池里已经没有足够的线程来处理该客户端的链接请求,这样该客户端就不算连接上服务端吧,但是客户端又没有报错,因为服务端已经监听到了它的连接请求
by_封爱 2017-09-07
  • 打赏
  • 举报
回复
connection报错就连不上了被 ....

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧