我最近使用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);
}
}
答案 0 :(得分:0)
现在我们已经分配了它,以便识别正在侦听的每个端口上运行的服务
我不相信你的任务在计算上是可行的,除非你被允许查找/ etc / services。
我相信每个端口都会在应用程序尝试连接时发送响应标头
没有。例如,Telnet和HTTP在收到请求之前不会发送任何内容。
对不起,这是一个如此广泛的问题
这不是你的错,这是作业的错,除非你在这里误解了它或错误引用它。