📄 testtransfer.java
字号:
/**
* @(#)TestTransfer.java
*
* Sample Applet application
*
* @author
* @version 1.00 05/04/07
*/
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.awt.event.*;
public class TestTransfer extends Applet implements ActionListener,Runnable
{
private TextField m_TextFiledIP;
private TextField m_TextFiledPort;
private Button m_BtnConnect;
private TextArea m_TextAreaSend;
private Button m_BtnSend;
private TextArea m_TextAreaRec;
Socket m_conSocket;
DataOutputStream m_out;
DataInputStream m_in;
int m_iConnect=0;
Thread m_ThreadRec;
protected Button makebutton(String name, GridBagLayout gridbag,GridBagConstraints c)
{
Button btn = new Button(name);
gridbag.setConstraints(btn, c);
add(btn);
return btn;
}
protected void makelabel(String name, GridBagLayout gridbag,GridBagConstraints c)
{
Label label= new Label(name,Label.LEFT);
gridbag.setConstraints(label, c);
add(label);
}
protected TextField makeTextField(String name,int len, GridBagLayout gridbag,GridBagConstraints c)
{
TextField field;
field= new TextField(name,len);
gridbag.setConstraints(field, c);
add(field);
return field;
}
protected TextArea makeTextArea(String name,int lenx,int leny, GridBagLayout gridbag,GridBagConstraints c)
{
TextArea field;
field= new TextArea(name,lenx,leny,TextArea.SCROLLBARS_VERTICAL_ONLY);
gridbag.setConstraints(field, c);
add(field);
return field;
}
private String GetHostIP()
{
return getCodeBase().getHost();
/* String s1 = "";
if(s.length() < 15)
return s;
for(int i = 0; i < 16; i += 4)
s1 = s1 + String.valueOf(Long.valueOf(s.substring(i, i + 3), 16)) + '.';
return s1.substring(0, s1.length() - 1);
*/
}
public void init()
{
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(gridbag);
c.anchor=GridBagConstraints.NORTHWEST;
c.insets=new Insets(1,1,1,1);
c.gridwidth=1;
makelabel("设备地址:",gridbag, c);
m_TextFiledIP=makeTextField(GetHostIP(),12,gridbag,c);
m_TextFiledIP.enable(false);
makelabel("端口:",gridbag, c);
m_TextFiledPort=makeTextField("4001",5,gridbag,c);
c.gridwidth = GridBagConstraints.REMAINDER; //本行结束
m_BtnConnect=makebutton("连接",gridbag,c);
m_BtnConnect.addActionListener(this);
m_BtnConnect.setActionCommand("Connect");
makelabel(" ",gridbag, c);
c.gridwidth=1;
makelabel("发送数据区:",gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //本行结束
m_BtnSend=makebutton("发送",gridbag,c);
m_BtnSend.addActionListener(this);
m_BtnSend.setActionCommand("Send");
m_TextAreaSend=makeTextArea("00 01 02 03 04 05 ",5,50,gridbag,c);
makelabel(" ",gridbag, c);
makelabel("接收数据区:",gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //本行结束
m_TextAreaRec=makeTextArea("",5,50,gridbag,c);
m_conSocket=null;
m_out=null;
m_in=null;
m_ThreadRec=new Thread(this,"RecThread");
m_ThreadRec.start();
resize(500,400);
}
public void destroy()
{
m_ThreadRec.stop();
m_ThreadRec = null;
}
public byte[] ConvertStrtoHex(String str,int len)
{
byte bufarr[]=new byte[len];
for(int i=0;i<len;i++)
{
bufarr[i]=Byte.parseByte(str.substring(i*3,i*3+2),16);
}
return bufarr;
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="Connect")
{
if(m_iConnect==0)
{
if(TCPInit()==1)
{
m_BtnConnect.setLabel("断开");
m_iConnect=1;
}
}
else
{
TCPClose();
m_BtnConnect.setLabel("连接");
m_iConnect=0;
}
}
else if(e.getActionCommand()=="Send"/*&&m_iConnect==1*/)
{
String str=m_TextAreaSend.getText();
int len=(str.length()+1)/3;
byte bufarr[]=ConvertStrtoHex(str,len);
try
{
m_out.write(bufarr,0,len);
}
catch(IOException ioexception)
{
}
}
}
public void TCPClose()
{
try
{
m_conSocket.close();
m_out.close();
m_in.close();
}
catch(IOException ioexception)
{
}
}
public int TCPInit()
{
try
{
String strip=m_TextFiledIP.getText();
int port=(int)Integer.parseInt(m_TextFiledPort.getText());
m_conSocket = new Socket(strip,port);
m_conSocket.setSoTimeout(2000);
m_out = new DataOutputStream(m_conSocket.getOutputStream());
m_in = new DataInputStream(m_conSocket.getInputStream());
}
catch(UnknownHostException unknownhostexception)
{
System.err.println("Don't know about host: taranis.");
return 0;
}
catch(IOException ioexception)
{
System.err.println("Couldn't get I/O for the connection to: taranis.");
return 0;
}
return 1;
}
public void PutBytetoTextField(byte[] bufarr,int len)
{
String str="";
String tmp;
for(int i=0;i<len;i++)
{
tmp=Integer.toHexString((int)bufarr[i]);
if (tmp.length() == 1)
tmp = "0" + tmp;
str+=tmp+" ";
}
m_TextAreaRec.appendText(str);
}
void Delay(int i)
{
try
{
Thread.sleep(i);
}
catch(Exception exception) { }
}
public void run()
{
String curRunning=Thread.currentThread().getName();
if(curRunning.equals("RecThread"))
{
while(true)
{
if(m_iConnect==1)
{
byte recbuf[]=new byte[1024];
int len;
try
{
len = m_in.read(recbuf,0,1024);
PutBytetoTextField(recbuf,len);
}
catch(IOException ioexception)
{
Delay(1000);
}
}
else
{
Delay(1000);
}
}
}
}
public void paint(Graphics g)
{
//g.drawString("Welcome to Java!!", 50, 60 );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -