1 import java.io.DataInputStream;
\r
2 import java.io.DataOutputStream;
\r
3 import java.io.IOException;
\r
5 import lejos.nxt.comm.BTConnection;
\r
6 import lejos.nxt.comm.NXTSocket;
\r
7 import lejos.nxt.comm.USBConnection;
\r
9 public class NXTServerSocket {
\r
12 private BTConnection btc;
\r
13 private USBConnection usbc;
\r
14 private boolean isBluetooth;
\r
15 private final boolean isServer = true;
\r
20 * Constructor. Creates a new Server Socket over an open bluetooth connection
\r
21 * @param port The port to listen on
\r
22 * @param btc The bluetooth connection to open
\r
23 * @throws IOException
\r
25 public NXTServerSocket(int port, BTConnection btc) throws IOException{
\r
29 negotiateConnection();
\r
33 * Constructor. Creates a new Server Socket over an open usb connection
\r
34 * @param port The port to listen on
\r
35 * @param usbc The usb connection to open
\r
36 * @throws IOException
\r
38 public NXTServerSocket(int port, USBConnection usbc) throws IOException{
\r
41 isBluetooth = false;
\r
42 negotiateConnection();
\r
45 private void negotiateConnection() throws IOException{
\r
46 DataOutputStream dos = openDataOutputStream();
\r
47 dos.writeBoolean(isServer);
\r
54 private DataOutputStream openDataOutputStream() throws IOException{
\r
55 DataOutputStream dos;
\r
56 if(isBluetooth){dos = new DataOutputStream(btc.openOutputStream());}
\r
57 else{dos = new DataOutputStream(usbc.openOutputStream());}
\r
61 private DataInputStream openDataInputStream() throws IOException{
\r
62 DataInputStream dis;
\r
63 if(isBluetooth){dis = new DataInputStream(btc.openInputStream());}
\r
64 else{dis = new DataInputStream(usbc.openInputStream());}
\r
69 * Waits untill there is a socket connection available. When this becomes true
\r
70 * a new NXTSocket is returned
\r
72 * @throws IOException
\r
74 public NXTSocket accept() throws IOException{
\r
75 DataOutputStream dos = openDataOutputStream();
\r
76 DataInputStream dis = openDataInputStream();
\r
77 // inform the proxy of the command
\r
83 if(isBluetooth){return new NXTSocket(btc);}
\r
84 else{return new NXTSocket(usbc);}
\r