网站建设资讯

NEWS

网站建设资讯

java识别端口代码 java扫描端口

利用java代码如何检测某端口号是否可用

很简单,给你写个例子:

为垦利等地区用户提供了全套网页设计制作服务,及垦利网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、垦利网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

//检测端口8080到8090哪些可用哪些不可用

for(int i = 8080; i8090; i++){

try {

ServerSocket sskt = new ServerSocket(i);

System.out.println("端口[" +i + "]可用。");

} catch (IOException e) {

System.out.println("端口 [" + i + "] 被占用.");

}

}

请教大神,怎么使用java实现UDP端口扫描

给你个UDP服务端与客户端的示例:

服务端代码:

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class UDPMulticastServer {

final static int RECEIVE_LENGTH = 1024;

static String multicastHost = "224.0.0.1";

static int localPort = 9998;

public static void main(String[] args) throws Exception {

InetAddress receiveAddress = InetAddress.getByName(multicastHost);

if (!receiveAddress.isMulticastAddress()) {// 测试是否为多播地址

throw new Exception("请使用多播地址");

}

int port = localPort;

MulticastSocket receiveMulticast = new MulticastSocket(port);

receiveMulticast.joinGroup(receiveAddress);

boolean isStop = false;

while(!isStop){

DatagramPacket dp = new DatagramPacket(new byte[RECEIVE_LENGTH], RECEIVE_LENGTH);

receiveMulticast.receive(dp);

String data = new String(dp.getData()).trim(); 

System.out.println(data);

if("exit".equals(data)){

System.out.println("程序退出");

isStop = true;

}

}

receiveMulticast.close();

}

}

客户端代码:

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class UDPMulticastClient {

static String destAddressStr = "224.0.0.1";  

  

static int destPortInt = 9998;  

static int TTLTime = 4;  

public static void main(String[] args) throws Exception {  

InetAddress destAddress = InetAddress.getByName(destAddressStr);  

if(!destAddress.isMulticastAddress()){//检测该地址是否是多播地址  

 throw new Exception("地址不是多播地址");  

}  

int destPort = destPortInt;  

MulticastSocket multiSocket =new MulticastSocket();  

//     int TTL = TTLTime;  

//     multiSocket.setTimeToLive(TTL);  

byte[] sendMSG = "exit".getBytes();  

DatagramPacket dp = new DatagramPacket(sendMSG, sendMSG.length, destAddress  , destPort);  

multiSocket.send(dp);  

multiSocket.close();  

}  

}

如何用java程序获得本机的端口号?

你是不是想在JSP里面,想获取当前服务器的端口呢?如果是的话,在JSP里面,代码是:request.getLocalPort();

如果想获取客户端的端口,JSP代码是:request.getRemotePort();

你的问题描述的不是很清楚,很难确切的回答你。

如何用java语言实现端口扫描器

使用 DatagramSocket(int port) 建立socket(套间字)服务。

将数据打包到DatagramPacket中去

通过socket服务发送 (send()方法)

关闭资源

public static void main(String[] args) {

DatagramSocket ds = null; //建立套间字udpsocket服务

try {

ds = new DatagramSocket(8999); //实例化套间字,指定自己的port

} catch (SocketException e) {

System.out.println("Cannot open port!");

System.exit(1);

}

byte[] buf= "Hello, I am sender!".getBytes(); //数据

InetAddress destination = null ;

try {

destination = InetAddress.getByName("192.168.1.5"); //需要发送的地址

} catch (UnknownHostException e) {

System.out.println("Cannot open findhost!");

System.exit(1);

}

DatagramPacket dp =

new DatagramPacket(buf, buf.length, destination , 10000);

//打包到DatagramPacket类型中(DatagramSocket的send()方法接受此类,注意10000是接受地址的端口,不同于自己的端口!)

try {

ds.send(dp); //发送数据

} catch (IOException e) {

}

ds.close();

}

}

接收步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

使用DatagramPacket的方法,提取数据。

关闭资源。

import java.net.*;

public class Rec {

public static void main(String[] args) throws Exception {

DatagramSocket ds = new DatagramSocket(10000); //定义服务,监视端口上面的发送端口,注意不是send本身端口

byte[] buf = new byte[1024];//接受内容的大小,注意不要溢出

DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定义一个接收的包

ds.receive(dp);//将接受内容封装到包中

String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出内容

System.out.println(data);//打印内容

ds.close();//关闭资源

}

}

被占用的端口如何通过Java代码查出是那个ip占用的

public class TestPort

{

public static void main(String[] args)

{

System.out.println(getPID("3306"));//得到进程ID,3306是端口名称

System.out.println(getProgramName(getPID("3306")));//根据进程ID得到映像名称

killTask(getProgramName(getPID("3306")));//根据映像名称关闭进程

}

// 得到进程ID

public static String getPID(String port){

InputStream is = null;

BufferedReader br = null;

String pid = null;

try

{

String[] args = new String[]{"cmd.exe","/c","netstat -aon|findstr",port};

is = Runtime.getRuntime().exec(args).getInputStream();

br = new BufferedReader(new InputStreamReader(is));

String temp = br.readLine();

if(temp != null){

String[] strs = temp.split("\\s");

pid=strs[strs.length-1];

}

}

catch (IOException e)

{

e.printStackTrace();

}finally{

try

{

br.close();

}

catch (IOException e)

{

e.printStackTrace();

}

}

return pid;

}

//根据进程ID得到映像名称

public static String getProgramName(String pid){

InputStream is = null;

BufferedReader br = null;

String programName = null;

try

{

String[] args = new String[]{"cmd.exe","/c","tasklist|findstr",pid};

is = Runtime.getRuntime().exec(args).getInputStream();

br = new BufferedReader(new InputStreamReader(is));

String temp = br.readLine();

if(temp != null){

String[] strs = temp.split("\\s");

programName=strs[0];

}

}

catch (IOException e)

{

e.printStackTrace();

}finally{

try

{

br.close();

}

catch (IOException e)

{

e.printStackTrace();

}

}

return programName;

}

//根据映像名称关闭进程

public static void killTask(String programName){

String[] args = new String[]{"Taskkill","/f","/IM",programName};

try

{

Runtime.getRuntime().exec(args);

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

//题主自己看看具体怎么get它的ip地址,好久没有写,不知道了

java扫描局域网的端口

直接上代码:

import java.net.Socket;

import java.text.SimpleDateFormat;

import java.util.Date;

public class PortScanner extends Thread {

private int[] p;

Socket ss = null;

public PortScanner(int[] p) {

this.p = p;

}

public static void main(String[] args) {

for (int i = 0; i  65535; i = i + 100) {

new PortScanner(new int[] { i + 1, i + 100 }).start();

}

}

@Override

public void run() {

for (int i = p[0]; i  p[1]; i++) {

try {

ss = new Socket("8.8.8.8", i);

System.out.println("扫描到端口: " + i);

} catch (Exception e) {

// System.out.println("关闭端口: " + i);

}

}

}

}


本文名称:java识别端口代码 java扫描端口
文章起源:http://njwzjz.com/article/hhpipg.html