java中如何用线程判断137端口的状态

java中如何用线程判断137端口的状态,第1张

import javaioBufferedReader;

import javaioIOException;

import javaioInputStreamReader;

import javanetInetAddress;

import javanetSocket;

import javanetUnknownHostException;public class Test { public static void main(String args[]) { // IP

String host = "120423788";

// 起始端口

int begin = 137;

// 截止端口

int end = 137; if (argslength > 0) {

host = args[0];

}

if (argslength > 1) {

begin = IntegerparseInt(args[1]);

end = IntegerparseInt(args[2]);

} try {

InetAddress theAddress = InetAddressgetByName(host);

for (int i = begin; i <= end; i++) {

BufferedReader networkIn = null;

try {

Socket theSocket = new Socket(theAddress, i);

Systemoutprintln("there is a serve on port" + i

+ " of " + host);

networkIn = new BufferedReader(new InputStreamReader(

theSocketgetInputStream()));

Systemoutprintln(networkInreadLine());

}

catch (IOException e) {

Systemout

println("there is no service on port "

+ i);

}

}// END FOR

}// END TRY catch (UnknownHostException e) {

Systemerrprintln(e);

}

}// END MAIN}

检测对于 IP的对应端口 是否有服务 

用 cmdexe 程序来输入命令: netstat -ano | find ":你的端口号"找到了的话: taskkill /f /pid:你的进程PID(在上一条命令行中会列出进程PID) 正常的情况下,如果你的程序真的已经退出了,那个端口就会自动被 *** 作系统释放的,很可能你的程序还java 用ServerSocket监听了一个端口,在程序结束的

本地端口监听

import javaioIOException;

import javanetServerSocket;

import javanetSocket;

import javautilconcurrentExecutorService;

import javautilconcurrentExecutors;

public class SocketServer

{

private ServerSocket serverSocket;

private ExecutorService executorService;// 线程

private final int POOL_SIZE = 600;// 单个CPU线程池大小

public SocketServer() throws IOException

{

serverSocket = new ServerSocket(9888);//监听的端口号

// Runtime的availableProcessor()方法返回当前系统的CPU数目

executorService = ExecutorsnewFixedThreadPool(RuntimegetRuntime()availableProcessors()  POOL_SIZE);

Systemoutprintln("服务器启动");

}

public void service()

{

while (true)

{

Socket socket = null;

try

{

// 接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接

socket = serverSocketaccept();

executorServiceexecute(new Handlers(socket));

//这里就是放业务逻辑的地方例如获取数据等等

} catch (Exception e)

{

eprintStackTrace();

Systemoutprintln("socket Exception:" + e);

}

}

}

public static void main(String[] args) throws IOException

{

//Thread thread = new Thread(new PringtThread());

//threadstart();

new SocketServer()service();

}

}

端口扫描代码

import javaioIOException;

import javanetSocket;

public class SearchPort implements Runnable

{

public static void main(String[] args)

{

SearchPort searchPort = new SearchPort();

Thread thread = new Thread(searchPort);

threadstart();

}

@Override

public void run()

{

searchPort("19216812", 0, 9999);

}

public void searchPort(String ip,int begin, int end) {

        // 1-65535

        Socket s = null;

        for (int i = begin; i < end; i++) {

            boolean flag = false;

            try {

                s = new Socket(ip, i);

                flag = sisConnected();

            } catch (IOException e) {

                // TODO Auto-generated catch block

                // eprintStackTrace();

            }

            if (flag) {

                Systemoutprintln("port " + i + " is open");

                try {

                    sclose();

                } catch (IOException e) {

                    // TODO Auto-generated catch block

                    eprintStackTrace();

                }

            } else {

                // Systemoutprintln("port " + i + " is close");

            }

        }

        //Systemoutprintln("seach port :" + begin + " to " + end + " ok");

    }

}

第一个端口监听的采用了线程池的技术,当大数据来的时候也不怕(某大型企业的部分源码),第二个例子是端口扫描器,采用了多线程扫描,代码直接复制就可以用的,从10点50分打代码11点半,不容易,望楼主采纳,有什么问题可以问我

以上就是关于java中如何用线程判断137端口的状态全部的内容,包括:java中如何用线程判断137端口的状态、java 用ServerSocket监听了一个端口,在程序结束的、谁有java本地监听与远程端口扫描 源程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9672350.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存