【发布时间】:2015-01-13 01:23:40
【问题描述】:
抱歉我的英语不好。我必须使用 android 上的蓝牙 pan 接口从手机向收音机发送和接收数据。这是我实现发送的代码,我已经将其放入 AsyncTask 的函数 DoInBackground() 中:
try
{
ds = new DatagramSocket();
byte buf[] = "Ciao".getBytes();
DatagramPacket msg = new DatagramPacket(buf, buf.length, InetAddress.getByName(add), p);
ds.send(msg);
}
而且效果很好。现在我要等100秒收音机的回答。我决定用这段代码来实现它:
try
{
ds.setSoTimeout(10000);
while(true)
{
try
{
ds.receive(dp);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
catch (IOException e)
{
}
但是有三个问题: 1.我需要在192.168.11.2和1234端口接收数据包,但是当我声明datagramsocket时我将它设置为void,因为如果我输入端口和地址,发送代码不起作用; 2. 对讲机收到的数据包如何管理?我不需要使用地址和端口字节; 3. 为什么我把timeout放在loop之前?
感谢您的回答。
【问题讨论】: