/** * Pass some data to the server and wait for a response. * * @param data The data to send. */ private void send(String data) throws IOException { // Cache the length locally for better efficiency. int length = data.length(); // Create an input array just big enough to hold the data // (we're expecting the same string back that we send). // char[] input = new char[length]; _out.write(data, 0, length); /* // Read character by character into the input array. for (int i = 0; i < length; ++i) { input[i] = (char)_in.read(); } // Hand the data to the parent class for updating the GUI. By explicitly // creating the stringbuffer we can save a few object creations. StringBuffer s = new StringBuffer(); s.append("Received: ") ; s.append(input, 0, length); _screen.updateDisplay(s.toString());*/ }
/** Implementation of Thread. */ public void run() { StreamConnection connection = null; try { _screen.updateDisplay("Opening Connection..."); String url = "socket://" + _screen.getHostFieldText() + ":44444;interface=wifi" + (_screen.isDirectTCP() ? ";deviceside=true" : ""); connection = (StreamConnection) Connector.open(url); _screen.updateDisplay("Connection with " + _screen.getHostFieldText() + " established."); _in = connection.openInputStream(); _out = new OutputStreamWriter(connection.openOutputStream()); // Send the HELLO string. // send("Hello from BlackBerry 9860."); // send("Hello from BlackBerry 9860."); send(AzrRP_Screen.getMsg()); // Execute further data exchange here... // send("Bye"); _screen.updateDisplay("Done!"); } catch (IOException e) { System.err.println(e.toString()); } finally { _screen.setThreadRunning(false); try { _in.close(); } catch (IOException ioe) { } try { _out.close(); AzrRP_Screen.setMsg(null); } catch (IOException ioe) { } try { connection.close(); } catch (IOException ioe) { } } }