【问题标题】:Seeing incoming connections, sockets java查看传入连接,套接字java
【发布时间】:2012-03-29 10:43:52
【问题描述】:

目前我使用这个小sn-p 代码来启动我的Java 服务器并允许连接到它。

ServerSocket serverSocket = new ServerSocket(8000)
        Socket socket = serverSocket.accept();

        DataInputStream inputFromClient = new DataInputStream(socket.getInputStream());
        DataOutputStream outputToClient = new DataOutputStream(socket.getOutputStream());

我想知道如何从客户端查看到我的服务器的所有连接。表示已连接的 IP 地址,以及有关传入连接的所有信息。

谢谢

【问题讨论】:

  • 我想知道这是你的整个代码还是一个sn-p。这个 sn-p 只适用于 1 个客户端,对吗?您需要在单独的线程上为每个客户端提供服务。

标签: java sockets


【解决方案1】:

每次客户端连接时,在您的服务器上记录客户端 IP 地址等,然后让客户端向服务器发送一条消息,例如“获取客户”。当服务器套接字在 datainputstream 上读取此字符串时,发送客户端列表和那里的信息

【讨论】:

  • 我明白了,是否可以因为当前用户的 IP 地址而断开连接?
  • 你可以使用 socket.close()
  • 但是如果有 15 个 IP 地址连接到服务器怎么办,我可以只做一个而不是全部吗?
  • 是的,不要关闭 serverSocket,你想在客户端连接时保留每个套接字的列表(ArrayList 通常最简单)然后你会说类似 - for (Socket s:socketArray) { if (s.getInetAddress()==theInetaddressToDelete) s.close;}
  • 谢谢ghostbust555!另一个快速的问题......你有什么理由可以想到为什么我能够从同一个网络连接到我的服务器套接字,但不能从不同的网络连接到我的服务器套接字? (来自同一个网络我使用网络 IP 192.168 .....但来自另一个网络我使用实际的互联网 ip)
猜你喜欢
  • 2013-02-02
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
相关资源
最近更新 更多