Java端口扫描程序,用于识别正在运行的服务

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

我最近用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);
                }
        }
现在,我们被指派让it部门识别正在侦听的每个端口上运行的服务

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

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

不。例如,Telnet和HTTP在收到请求之前不发送任何内容

很抱歉,这是一个如此宽泛的问题


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

你能给我们看一下吗?我已经在原始帖子中添加了我到目前为止的代码,我收到了一个带有一些易读文本的文本回复,尽管我不确定标题是否正确。我正在3306端口(MySQL)上测试它,它返回以下文本“5.6.11ÏM\dcBa@]15Ä500?,[hyG7z#MySQL#u native#u password”分配是否仅限于某台特定计算机上运行的内容?以及会话以服务器提示开始的服务?如果不是,我仍然不认为这在计算上是可行的。在端口3306上识别一台MySQL服务器很好,但以这种速度,在分配完成之前,您将已经毕业,或者没有毕业ete。你需要问你的教授这些问题。制作这个交流并征求意见。我明天会问他,非常感谢你的时间和到目前为止你提供的帮助。我通常会设法找到一些零碎的东西来开始使用谷歌,但这一次信息似乎非常有限,因此我问他请继续。再次感谢您迄今为止的帮助。:)我已经和我的老师谈过了,我似乎误解了家庭作业的要求!我很抱歉问了一些不相关的问题,我们正在构建一个程序,试图远程连接到数据库,询问用户名和密码,我想我们必须识别数据库运行在哪个端口上,但我们似乎可以只检查默认端口。因此,我的问题是无效的。非常感谢您的时间和再次抱歉。