检查N个客户端是否可以访问客户端端口

时间:2016-02-09 03:08:41

标签: java sockets networking tcp

我正在开发一个聊天系统,我想保留一个活跃客户列表。 因此,为了确保客户端处于活动状态,我将检查客户端是否在该特定端口中处于活动状态。

为了测试客户活动,我考虑了以下内容:

  1. getInputStream.read():我有多个客户端,所以我不想让线程保持活动状态等待return语句-1。

  2. isConnected()命令始终返回true。

  3. out.checkError()会抛出Exception,我不想抛出任何Exception并被打断。

  4. 所以我有逻辑通过该端口建立连接并在该客户端机器中创建一个文件。但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

  
      
  1. getInputStream.read() - 我有n个客户端,所以我不想让线程保持活动状态等待return语句
  2.   

你应该使用N个线程,每个客户端一个,就像其他人一样。并且套接字读取超时。

  
      
  1. isConnected()命令始终返回true。
  2.   

这不是命令,它是一种方法,否则是正确的。它会告诉您Socket的状态,而不是连接的状态。一旦你连接或接受了Socket,它就会成为现实:它永远不会变错。

  1. out.checkError()会抛出Exception
  2. 不,不会。如果 IOException写入PrintWriterPrintStream,它将return a boolean,但它不会告诉您异常是什么,并且它不适用于读取异常,所以它没有那么多用处。事实上,由于这个原因,你不应该在网络上使用PrintWriter,你应该使用BufferedWriter

    每个客户使用一个帖子。

      

    我不想抛出任何异常

    运气不好,这是您检测连接中止的唯一方法。

      

    并被打断。

    我不知道这意味着什么。