0

我最近使用 Java 构建了一个端口扫描器,它用于我的大学课程(只是为了让您知道我这样做不是出于恶意)。现在我们已经被分配让它识别每个正在侦听的端口上正在运行的服务,我相信每个端口都会在应用程序尝试连接到它时发送一个响应头,我认为从这个头中它是可能的了解哪个应用程序正在其上运行,除非它已被手动覆盖。我正在努力检索此标头,即使这样我也不确定如何处理它。对不起,这是一个如此广泛的问题,我完全是编程新手。您可以与我分享的任何链接或信息将不胜感激。我确实查看了其他问题,但没有看到与我的问题相似的问题,如果我错过了,我很抱歉。

提前致谢。

      public static void main(String[] args) {


    Socket socket;
    String message="";
    try {

        socket = new Socket();
        socket.connect(new InetSocketAddress("localhost", 3306),1000);
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        if (br.readLine()!=null){
             message += br.readLine();
             if (message!=null){
                    System.out.println(message);
                }
        }
4

1 回答 1

0

现在我们被分配让它识别每个正在侦听的端口上正在运行的服务

我不相信你的任务在计算上是可行的,除非你被允许查找 /etc/services.

我相信每个端口在应用程序尝试连接时都会发送一个响应头

不会。例如 Telnet 和 HTTP 在收到请求之前什么都不发送。

对不起,这是一个如此广泛的问题

这不是你的错,这是作业的错,除非你在这里误解或错误引用了它。

于 2013-07-23T10:29:18.853 回答