📄 jremserverconnector.java
字号:
/* * Copyright (C) 2007 Filippo Di Vattimo - See LICENSE * */package fildiv.jremcntl.server.core;import java.io.IOException;import javax.bluetooth.DiscoveryAgent;import javax.bluetooth.LocalDevice;import javax.bluetooth.RemoteDevice;import javax.microedition.io.Connector;import javax.microedition.io.StreamConnection;import javax.microedition.io.StreamConnectionNotifier;import fildiv.jremcntl.common.core.JRemBaseConnector;import fildiv.jremcntl.common.core.JRemConnectorException;import fildiv.jremcntl.common.core.JRemRuntimeException;import fildiv.jremcntl.common.core.JRemServerConnectionListener;import fildiv.jremcntl.common.proto.JRemAbstractProtocol;public class JRemServerConnector extends JRemBaseConnector { private StreamConnectionNotifier cnNotifier; private StreamConnection cn; private JRemServerProtocol proto; private JRemServerConnectionListener listener; public JRemServerConnector(JRemServerConnectionListener listener) { this.listener = listener; } public synchronized void acceptAndOpen(String url) throws JRemConnectorException { try { LocalDevice localDevice = LocalDevice.getLocalDevice(); localDevice.setDiscoverable(DiscoveryAgent.GIAC); cnNotifier = (StreamConnectionNotifier) Connector.open(url); cn = cnNotifier.acceptAndOpen(); RemoteDevice rd = RemoteDevice.getRemoteDevice(cn); listener.incomingConnection(rd); proto = new JRemServerProtocol(cn.openInputStream(), cn.openOutputStream()); } catch (IOException e) { listener.exceptionOccurred(e); throw new JRemConnectorException(e); } } public void interrupt() { try { if (cnNotifier != null) cnNotifier.close(); cnNotifier = null; } catch(Exception e) { // ignored } } public void close() { try { if (proto != null) proto.close(); if (cnNotifier != null) cnNotifier.close(); if (cn != null) cn.close(); cnNotifier = null; cn = null; proto = null; } catch(IOException e) { // Ignored } } public JRemAbstractProtocol getProtocol() { return proto; } public boolean isConnected() { return cn != null; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -