一.要求
要求:
1)使用Socket并开启10个线程
2)探测指定ip:222.24.16.1所有的TCP端口号
二.实现思路
实现思路:
1.创建Runnable实现类RunnableImpl,重写run()方法
1)并定义一个portSub()方法,用来修改port值,此方法用同步锁加锁;
2)在run()方法中用portSub()方法实现同步;
3)释放锁之后继续执行该线程run()中的语句
4)此时其他等待在锁步骤的线程进入同步方法portSub()中
5)同上,释放锁继续执行该线程run()中的语句
2.创建ScanPort类,开启多线程
三.代码实现
1.创建一个类RunnableImpl实现Runnnable接口
import java.io.IOException;
import java.net.Socket;
public class RunnableImpl implements Runnable {
private static String host = "222.24.16.1";
private static Socket socket = null;
private static int port = 65536;
public synchronized int portSub(){ //同步锁方法,用来修改port值
port--;
return port;
}
@Override
public void run() { //重写run()方法
while (true) { //死循环控制线程一直执行
method(); //探测端口的方法