⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testtransfer.java

📁 串口通讯工具
💻 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 + -