t181935471 2010-12-07 14:48
浏览 395
已采纳

java网络编程的一些问题

入口类:
[code="java"]package socketone;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    //开启线程数
    int threadCount=5;
    //最大端口号
    int maxPort=1000;
    //最小端口号
    int minPort=1;
    //端口递增量
    int portIncremenr=((maxPort-minPort+1)/threadCount)+((maxPort-minPort+1)%threadCount==0?0:1);

    SocketOne[] instances=new SocketOne[threadCount];
    //利用多线程将这个端口范围分成不同的段进行扫描
    for(int i=0;i<threadCount;i++){
        instances[i]=new SocketOne(minPort+portIncremenr*i,minPort+portIncremenr*i+portIncremenr-1);
        Thread thread =new Thread(instances[i]);
        thread.start();
    }
}

}
[/code]

端口扫描类:

[code="java"]package socketone;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class SocketOne implements Runnable{
//最小端口号
private int minPort;
//最大端口号
private int maxPort;

public SocketOne(int minPort, int maxPort) {
    super();
    this.minPort = minPort;
    this.maxPort = maxPort;
}

@Override
public void run() {
    for(int i=minPort;i<=maxPort;i++){
        try {
            Socket socket=new Socket("127.0.0.1", i);
            if(socket.isConnected()){
                System.out.println("端口号:"+i+" 打开!");
            }
            socket.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

}
[/code]

就是很简单的一个本机端口扫描,利用多线程分配扫描端口范围,但是却一直提示以下异常:

[code="java"]java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at socketone.SocketOne.run(SocketOne.java:23)
at java.lang.Thread.run(Unknown Source)
[/code]

连接被拒绝,很是疑惑,连接本机都拒绝,但是在cmd下,我用telnet是可以连接的,系统是win7,大家知道怎么回事吗?
希望能帮忙解答下,小弟感激不尽!!!

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 爬取网页内容并保存需要完整的python代码
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了