Java appletプログラムで困ってます。
市販の本に掲載せれているEclipse下記プログラムを丸写しで打込みコンパイルしました。
それでWEB上で確認した所、オブジェクト動作上(.pngの表示・非表示)では動作している様に思います。
しかし、どうもLANネットワーク(最終的にはRS232C)動作反応がありません
プログラムに問題があるのでしょうか?
ネットワーク・セキュリティー・ファイヤウォール等に問題があるのでしょうか?
まったく見当がつきません。Java言語は初心者です。
ご教授宜しくお願い致します。
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class xport002 extends Applet implements Runnable{
boolean sw1,sw2,run;
Image img1,img2,img3;
String buff;
char com;
Thread th=null;
int port=10001;
InetAddress xport_ip=null;
Socket xport_socket;
DataInputStream socketin;
DataOutputStream socketout;
public void init(){
try{
xport_ip=InetAddress.getByName(getCodeBase().getHost());
}
catch(UnknownHostException e){}
try{
xport_socket=new Socket(xport_ip,port);
//socketin=new DataInputStream(xport_socket.getInputStream());
socketout=new DataOutputStream(xport_socket.getOutputStream());
}
catch(Exception e){}
img1=getImage(getDocumentBase(),"base2.png");
img2=getImage(getDocumentBase(),"Red3.png");
img3=getImage(getDocumentBase(),"Red4.png");
add(new Button("LED-R1"));
add(new Button("LED-R2"));
repaint();
}
public boolean action (Event e,Object obj){
if(obj.equals("LED-R1")){
sw1=!sw1;
com='1';
repaint();
run=true;
}
else if(obj.equals("LED-R2")){
sw2=!sw2;
com='2';
repaint();
run=true;
}
return true;
}
public void start(){
if(th==null){
th=new Thread(this);
th.start();
}
}
public void run(){
Thread me=Thread.currentThread();
while(th==me){
if(run){
try{
socketout.writeByte(com);
socketout.flush();
repaint();
th.sleep(1000);
}
catch(Exception e){}
run=false;
sw1=false;
sw2=false;
repaint();
}
try{
buff=socketin.readLine();
repaint();
}
catch(IOException e){}
}
}
public void stop(){
if(th!=null){
try{
socketin.close();
socketout.close();
xport_socket.close();
}
catch(Exception e){}
th.stop();
th=null;
}
}
public void paint(Graphics g){
g.drawImage(img1,100,50,this);
if (sw1)g.drawImage(img2,100,50,this);
if (sw2)g.drawImage(img3,150,50,this);
String t1=buff+"℃";
g.setFont(new Font("MS明朝",Font.BOLD,36));
g.drawString(t1, 100, 200);
}
}
お礼
ありがとうございます。 上記参考サイトにて試してみようと思います。
補足
早速の御指摘ありがとうございます。 参考サイトのアドレスに一部、誤りがりあした。 sonetの間にハイフンを挿入し、so-netとなさって頂ければ閲覧できると思います。 御紹介していただいたサイトのほう、確認し、再度御対応させていただきたく思います。