Blame |
Last modification |
View Log
| RSS feed
package org.ligi.ufo;
import java.io.*;
//import javax.microedition.io.*;
//#ifdef j2me
//# import javax.microedition.io.*;
//#endif
public class MKProxy
implements Runnable
{
public boolean connected
;
public String url
;
public String err_str=
"none";
//#ifdef j2me
//# StreamConnection connection;
//#endif
//#ifdef android
java.
net.
Socket connection
;
//#endif
public java.
io.
InputStream reader
;
public java.
io.
OutputStream writer
;
MKCommunicator mk
;
public MKProxy
(MKCommunicator _mk
)
{
mk=_mk
;
new Thread( this ).
start(); // fire up main Thread
}
public void connect
(String url_
)
{
url=url_
;
try
{
//
//#ifdef android
connection =
new java.
net.
Socket(url_,
9876);
reader=connection.
getInputStream();
writer=connection.
getOutputStream();
//#endif
//#ifdef j2me
//# connection = (StreamConnection) Connector.open(url, Connector.READ_WRITE);
//# reader=connection.openInputStream();
//# writer=connection.openOutputStream();
//#endif
String init=
"new:foo bar\r\n";
writer.
write(init.
getBytes());
writer.
flush();
connected=
true;
}
catch (Exception e
)
{
// err_str=e.toString();
// this=null;
connected=
false;
}
}
public void write
(byte[] input,
int off,
int len
)
{
if (connected
)
try{ writer.
write(input,off,len
);
writer.
write(13);
writer.
flush();
// if (input==13) writer.flush();
}
catch(Exception e
) { connected=
false; }
}
public void sleep
(int time
)
{
try { Thread.
sleep(time
); }
catch (Exception e
) { }
}
public void run
()
{
while(true)
{
try {
if (connected
)
{
byte[] data_in_buff=
new byte[reader.
available()];
int read_count =reader.
read(data_in_buff,
0,reader.
available());
if (read_count
>0) mk.
write_raw(data_in_buff
);
sleep
(30);
}
else
sleep
(300);
}
catch ( Exception e
){}
}
}
}