📄 client2.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor./* * To change this template, choose Tools | Templates * and open the template in the editor. */import javax.microedition.lcdui.*;import java.util.Vector;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import javax.microedition.io.Connector;import javax.microedition.io.StreamConnection;import javax.bluetooth.BluetoothStateException;import javax.bluetooth.DeviceClass;import javax.bluetooth.DiscoveryAgent;import javax.bluetooth.DiscoveryListener;import javax.bluetooth.LocalDevice;import javax.bluetooth.RemoteDevice;import javax.bluetooth.ServiceRecord;import javax.bluetooth.UUID;public class Client2 implements Runnable, DiscoveryListener { private Connection2 Connection2; private DiscoveryAgent discoveryAgent; private static final UUID ECHO_SERVER_UUID = new UUID( "F0E0D0C0B0A000908070605040302010", false); Vector devices = new Vector(); Vector records = new Vector(); String messagex,messagey,messagez,messaget; String message_1,message_2,message_3,message_4; //boolean isConnection2 = false; StreamConnection conn; int i = 1; int[] transIDs; private Thread processorThread; private boolean isClosed = false; private int discType; public Client2(Connection2 Connection2) { this.Connection2 = Connection2; } public void start() { processorThread = new Thread(this); processorThread.start(); } public void sendMessage(String message1,String message2,String message3,String message4) { message_1 = message1; message_2 = message2; message_3 = message3; message_4 = message4; Thread fetchThread = new Thread() { public void run() { try { ServiceRecord sr = (ServiceRecord) records.elementAt(0); String url = sr.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false); conn = (StreamConnection) Connector.open(url); if(conn != null) is(true); DataOutputStream dos = conn.openDataOutputStream(); dos.writeUTF(message_1); dos.writeUTF(message_2); dos.writeUTF(message_3); dos.writeUTF(message_4); //System.out.println("writex" + i + message_1); //dos.writeUTF(message_2); // System.out.println("writey" + i + message_2); dos.flush(); dos.close(); DataInputStream dis = conn.openDataInputStream(); messagex = dis.readUTF(); messagey = dis.readUTF(); messagez = dis.readUTF(); messaget = dis.readUTF(); // System.out.println("messagex is" + i + messagex); // messagey = dis.readUTF(); // System.out.println("messagey is" + i + messagey); dis.close(); System.out.println(i); i++; Connection2.receiveMessage(messagex,messagey,messagez,messaget); } catch (Exception e) { System.out.println("Exception"); e.printStackTrace(); } } }; fetchThread.start(); } public void sendMessage2(String message1,String message2,String message3,String message4) { message_1 = message1; message_2 = message2; message_3 = message3; message_4 = message4; Thread fetchThread = new Thread() { public void run() { try { ServiceRecord sr = (ServiceRecord) records.elementAt(0); String url = sr.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false); conn = (StreamConnection) Connector.open(url); if(conn != null) is(true); DataOutputStream dos = conn.openDataOutputStream(); dos.writeUTF(message_1); dos.writeUTF(message_2); dos.writeUTF(message_3); dos.writeUTF(message_4); //System.out.println("writex" + i + message_1); //dos.writeUTF(message_2); // System.out.println("writey" + i + message_2); dos.flush(); dos.close(); } catch (Exception e) { System.out.println("Exception"); e.printStackTrace(); } } }; fetchThread.start(); } public void is(boolean isConnection2) { Connection2.isConnection2(isConnection2); } public void run() { try { LocalDevice local = LocalDevice.getLocalDevice(); discoveryAgent = local.getDiscoveryAgent(); } catch (BluetoothStateException e) { System.err.println("Can't initialize bluetooth: " + e); } try { discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this); } catch (BluetoothStateException bse) { } synchronized (this) { try { wait(); } catch (InterruptedException e) { System.err.println("Unexpected interuption: " + e); return; } } if (isClosed) { return; } UUID[] uuids = new UUID[1]; uuids[0] = ECHO_SERVER_UUID; transIDs = new int[devices.size()]; if (devices.size() != 0) { for (int i = 0; i < devices.size(); i++) { RemoteDevice rd = (RemoteDevice) devices.elementAt(i); try { //System.out.println("begin searchservices"); transIDs[i] = discoveryAgent.searchServices(null, uuids, rd, this); } catch (BluetoothStateException e) { continue; } } } synchronized (this) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } // System.out.println("Client2 run end"); } public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass deviceClass) { devices.addElement(remoteDevice); //System.out.println("discovered a device "); System.out.println(remoteDevice.getBluetoothAddress()); } public void inquiryCompleted(int discType) { //System.out.println("start inquiry completed"); this.discType = discType; if (discType != INQUIRY_COMPLETED || devices.size() == 0) { // Connection2.completeInitialization(false); } synchronized(this){ notify(); } } public void serviceSearchCompleted(int transID, int respCode) { //System.out.println("complete service Search"); switch (respCode) { case DiscoveryListener.SERVICE_SEARCH_COMPLETED: break; case DiscoveryListener.SERVICE_SEARCH_DEVICE_NOT_REACHABLE: break; case DiscoveryListener.SERVICE_SEARCH_ERROR: break; case DiscoveryListener.SERVICE_SEARCH_NO_RECORDS: break; case DiscoveryListener.SERVICE_SEARCH_TERMINATED: break; } synchronized (this) { notify(); } } public void servicesDiscovered(int transID, ServiceRecord[] serviceRecord) { //System.out.println("get server"); for (int i = 0; i < serviceRecord.length; i++) { records.addElement(serviceRecord[i]); } } void destroy() { isClosed = true; synchronized(this){ notify(); } try { processorThread.join(); } catch (InterruptedException e) { } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -