2013-04-04 162 views
0

我有一个异步套接字项目,我需要知道客户端何时断开连接,因此我可以将它从连接的客户端列表中删除。如何异步检查客户端是否断开连接?

有什么方法异步检查这个吗?

在我看来,我可以创建一个线程,让我循环遍历所有客户端,并检查!Client.Connected然后我将关闭套接字,但也许有另一种方法来做到这一点。

+0

什么Socket对象?你的项目有什么需求? - 不同的课程可能更适合您的需求,例如TCPListener等等,你到目前为止尝试过什么? – Clint 2013-04-04 20:44:07

+0

TCP套接字,我需要知道客户端何时断开连接。到目前为止,我尝试过了什么?没有,我只是在这个问题上写下了我的想法,我认为这不是一个好主意,因为可以说有1.000个客户端,并且循环1000个客户端可能需要时间。 – Leo 2013-04-04 20:46:17

+0

@通过1000个客户端来访问确实需要时间,但理想情况下,您应该以异步方式处理这些客户端中的每一个,您可以检查以确保在尝试与它们交互时仍可访问这些客户端。 – Clint 2013-04-04 20:50:08

回答

0

下一个问题可能会为你提供一些指导如何最好地处理你的问题,你是如何使用来治疗多个客户端中的插座一般

Asynchronous server socket multiple clients

+0

我正在使用开始读取,接受写入等..但如果我不与客户端交互,并且他已断开连接,套接字仍然在我的列表中,我不希望这样。 – Leo 2013-04-04 21:13:35

+0

@Leo然后这可能是有用的http://stackoverflow.com/questions/722240/instantly-detect-client-disconnection-from-server-socket它会出现没有办法通知,但你将不得不出现以某种方式采用投票策略。 – Clint 2013-04-04 21:15:45

+0

我做了一个单线程,我循环所有的套接字,并检查池功能,如果套接字连接或不。 – Leo 2013-04-04 22:04:30

相关问题