[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00062] (続) スレッドからスレッド作成元クラスを参照する方法?
すいません。さきほどの(1),(2)のクラスが思考錯誤の途中で
わかりづらいものだったので、申し訳ありませんが、もう一度
送信させて頂きます。m(__)m
--------------------------------------------------
(1)PortScanner.java
// ポートスキャナ ver1.0
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class PortScanner extends JFrame{
//Field
private JButton startButton;
private JButton stopButton;
private JLabel label;
private JTextArea textArea;
private JScrollPane scrollPane;
private JPanel panel;
//Constructor
public PortScanner(){
super("PortScanner");
label = new JLabel("PortNumber: ");
textArea = new JTextArea("(List of Active
Server)\n",10,20);
scrollPane = new JScrollPane(textArea);
panel = new JPanel(new GridLayout(2,1));
startButton = new JButton("START");
stopButton = new JButton("STOP");
panel.add(startButton);
panel.add(stopButton);
//EventHandler
startButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Thread t = new Thread(new Scanner());
t.start();
}
});
stopButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
System.exit(0);
}
});
//Show Components
this.getContentPane().add(label,BorderLayout.NORTH);
this.getContentPane().add(scrollPane,BorderLayout.CENTER);
this.getContentPane().add(panel,BorderLayout.SOUTH);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.pack();
this.show();
}
//MainMethod
public static void main(String[] args){
PortScanner ps = new PortScanner();
}
}
------------------------------------------------------
(2)Scanner.java
import java.net.*;
import java.io.*;
public class Scanner implements Runnable{
//Method
public void run(){
String host = "localhost";
try{
InetAddress adress = InetAddress.getByName(host);
for(int i=1;i<65536;i++){
Socket socket = null;
try{
socket = new Socket(host,i);
//↓ここで、どうにかこうやってオブジェクト参照した
いのですが・・
ps.setTextArea("There is a server on Port No." + i
+"\n");
ps.setLabel("PortNumber: " + i + "/65535");
}catch(IOException ioe){
ps.setLabel("PortNumber: " + i + "/65535");
//このポートではサーバーは稼動していない
}finally{
try{
if(socket != null){
socket.close();
}
}catch(IOException ioe){
//サーバの稼動していないホストとの接続は
//失敗しているので閉じる必要なし
}
}
}
}catch(UnknownHostException uhe){
System.err.println(uhe);
}
}
}
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/