| LANTRONIX デバイスサーバー 内蔵ウェブサーバの利用方法 | |
| LantronixデバイスサーバTOP-お問い合わせ-資料請求フォーム | 
|   | 
| LANTRONIX デバイスサーバー 内蔵ウェブサーバの利用方法 | 
import java.*;
import java.lang.*;
import java.net.*;
import java.util.*;
import java.io.*;/* 
 * This class opens a TCP connection, and allows reading and writing of byte arrays.
 */
public class tcpip
{
	protected Socket s = null;
	public DataInputStream dis = null;
	protected DataOutputStream dos = null;
			
	public tcpip(InetAddress ipa, int port)
	{
		Socket s1 = null;
try {// Open the socket
			s1 = new Socket(ipa.getHostAddress(), port);
		}		
catch (IOException e) { 
			System.out.println("Error opening socket"); 
			return;
		}
		s = s1;
		try {// Create an input stream
			dis = new DataInputStream(
new BufferedInputStream(s.getInputStream()));
		}	  
		catch (Exception ex) {
			System.out.println("Error creating input stream");
		}
		try {// Create an output stream
			dos = new DataOutputStream(
new BufferedOutputStream(s.getOutputStream()));
		}
		catch (Exception ex) {
			System.out.println("Error creating output stream");
		}
	}
	public synchronized void disconnect()
	{
		if (s != null) {
			try {
				s.close();
			}		
	    		catch (IOException e){ }
		}	
	}
	public synchronized void send(byte[] temp)
	{
		try {
			dos.write(temp, 0, temp.length);
			dos.flush();
		}
		catch(Exception ex) {
		    System.out.println("Error sending data : " + ex.toString());
		}
	}
	public synchronized byte[] receive()
	{
		byte[] retval = new byte[0];
	
		try {
			while(dis.available() == 0);/* Wait for data */
		}
		catch (IOException e){ }
		try {
			retval = new byte[dis.available()];
		} catch (IOException e){ }
		try {
			dis.read(retval);
		} catch (IOException e){ }
		return(retval);
	}
		
	public synchronized void send(String given)
	{// WARNING: this routine may not properly convert Strings to bytes
		int length = given.length();
		byte[] retvalue = new byte[length];
		char[] c = new char[length];
		given.getChars(0, length, c, 0);
		for (int i = 0; i < length; i++) {
			retvalue[i] = (byte)c[i];
		}
		send(retvalue);    
	}
}
 次に tcpip クラスを使う実際のアプレットを作成します. 次のコードをファイル "Test.Java"として保存してください. import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.net.*;
import java.io.*;
import java.lang.*;
import java.text.*;
import java.util.*;
public class Test extends Applet
{
	static private boolean isapplet = true;
	static private InetAddress arg_ip = null;
	static private int arg_port = 0;
public tcpip gtp = null;; 
	InetAddress reader_ip = null;
	int port = 10001;
	public void init()
	{
		gtp = null;
		reader_ip = null;
		port = 10001;		
	}
	
	public void start()
	{
		add(new Label("TCP/IP connection test"));
                  /* Either get the IP address from the HTTP server if we're
				   an applet, or from the commandline (if passed). */
		if (isapplet) {
			try {
				reader_ip = InetAddress.getByName(getCodeBase().getHost());
			}
			catch (UnknownHostException e){ }
		}
		else {
			reader_ip = arg_ip;
			if (arg_port != 0) {
				port = arg_port;
			}	
		}/* Open a socket to the device server's serial port */
		if (reader_ip != null) {
			if (gtp == null) {
				gtp = new tcpip(reader_ip, port);
				if (gtp.s == null) {
					add(new Label("Connection FAILED!"));
					return;
				}
			}
		}
		if (gtp == null) {
			add(new Label("Not Connected"));
			return;
		}
		add(new Label("Connected"));/* ADD YOUR CODE HERE *
                  /* You may now perform IO with the Device Server via
					 *	gtp.send(byte[] data_out);
					 *	byte[] data_in = gtp.receive();
					*/
	}
	public void destroy()
	{
		if (gtp != null)
			gtp.disconnect();
		gtp = null;
	}
	
	public void stop() {
	}	
	
public static void main(String[] args) {
		Frame frame = new Frame("TCP/IP Test");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
		if (args.length > 0) {
			try{
				arg_ip = InetAddress.getByName(args[0]);
			}
			catch (UnknownHostException e){}
			if (args.length > 1) {
				try {
					arg_port = Integer.valueOf(args[1]).intValue();
				}
				catch (NumberFormatException e) {}
			}
		}
		Test ap = new Test();
		frame.add(ap);
		ap.init();
		isapplet = false;
		ap.start();
frame.pack();
		frame.show();
	}
}
 次に,start()ルーチンにある/* ADD YOUR CODE HERE */ にあなたのアプリケーションを加えます(上記の例では,デバイスサーバへの接続を作りますが,データの転送は行いません). シリアルデバイスへのデータの転送には gtp.send() を,シリアルデバイスからのデータの読み込みには gtp.receive() を使います. 文法: gtp.send(byte[] array) byte[] array = gtp.receive()ここで,Javaのソースコードをクラスファイルにコンパイルします. C:> Javac tcpip.Java C:> Javac Test.Java Javaアプリケーションをテストします. C:> Java Test xxx.xxx.xxx.xxx 10001  |