📄 endpoint.java
字号:
import javax.bluetooth.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;
public class EndPoint
{
// 表示该结点代表的远程设备
RemoteDevice remoteDev;
// 远程设备的类
DeviceClass remoteClass;
// 远程设备的地址
String remoteUrl;
// 与该远程设备的联接
StreamConnection con;
//发现的id号,由searchServices获得( bluetooth discovery transId, obtainsed from searchServices)
int transId = -1; // -1 must be used for default. cannot use 0
// 对远程设备发送消息的线程
Sender sender;
// 对远程设备监听的线程
Reader reader;
// 本机用户呢称
String localName;
// 该结点代表的远程用户呢称
String remoteName;
// 用于回调NetLayer事件(BTListener implementation for callback NetLayer event)
BTListener callback;
//与之连接的蓝牙接口层
NetLayer btnet;
// vector of ChatPacket pending to be sent to remote service.
// 存储即将发送的消息,发送后移除(when message is sent, it is removed from the vector.)
Vector msgs = new Vector();
//初始化终结点,对一个远程设备进行绑定,以及与之相关的蓝牙接口层和联接
public EndPoint( NetLayer btnet, RemoteDevice rdev, StreamConnection c )
{
this.btnet = btnet;
remoteDev = rdev;
try {
// NOTE in 6600, this parameter must be false because
// according to some observation from other developer
// setting this to true mean the Bluetooth system need to make
// another connection to remote device, however, there is no available
// free connection, so it will give you exception
remoteName = rdev.getFriendlyName(false); // this is a temp name
}
catch (IOException ex) {
remoteName = "Unknown";
// ignore
}
localName = btnet.localName;
callback = btnet.callback;
con = c;
sender = new Sender();
sender.endpt = this;
reader = new Reader();
reader.endpt = this;
}
public synchronized void putString( int signal, String s )
{
//将消息放入队列中,准备发送
msgs.addElement( new ChatPacket( signal, s ) );
synchronized( sender )
{
// 告知发送线程准备发送
sender.notify();
}
}
public synchronized ChatPacket getString()
{
if ( msgs.size() > 0 )
{
// 如果有消息存在则取出消息,并移出消息矢量
ChatPacket s = (ChatPacket) msgs.firstElement();
msgs.removeElementAt(0);
return s;
} else
{
// 如果没任何消息返回 null
return null;
}
}
//检测消息矢量中是否有消息
public synchronized boolean peekString()
{
return ( msgs.size() > 0 );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -