作者jimmylo (迷路的小孩)
看板AndroidDev
标题[问题] wifi 广播问题
时间Mon Feb 6 05:32:20 2012
程式我主要参考
http://ppt.cc/eXN@
http://blog.xuite.net/ffc99a3b/ooxx/42960121
http://blog.xuite.net/ffc99a3b/ooxx/42960271
这2两个网站目标能够在手机写出传送讯息给客户端里面的方法是UDP
问题是我传送的讯息都有传送出去
但是问题是我的接收那一端一直收不到讯息
该给的权限我都有给过了但是不知道问题出在哪!!
程式码也没问题放在手机也都能执行就是接收端收不到讯息
送出端程式码
private static final String TAG = "Discovery";
private static final int DISCOVERY_PORT = 2562;
String requestString = "SendMessageTest" ;
public void run() {
try {
DatagramSocket socket = new DatagramSocket(
DISCOVERY_PORT);
socket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(
requestString.getBytes(),
requestString.length(),
getBroadcastAddress(),
DISCOVERY_PORT);
socket.send(packet);
ShowMessage.setText("i have send message");
} catch (IOException e) {
Log.e(TAG, "Could not send discovery request", e);
ShowMessage.setText("i have not send message");
}
}
接收端程式码
private static final String TAG = "Discovery";
private static final int DISCOVERY_PORT = 2562;
private static final int TIMEOUT_MS = 20000;
byte[] buf = new byte[1024];
public void run() {
try {
DatagramSocket socket = new DatagramSocket(DISCOVERY_PORT);
socket.setBroadcast(true);
socket.setSoTimeout(TIMEOUT_MS);
while (true) {
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
String s = new String(packet.getData(), 0, packet.getLength());
ShowMessage.setText(s);
}
} catch (IOException e) {
Log.e(TAG, "Could not send discovery request", e);
ShowMessage.setText("Receive timed out");
}
}
传送出去我有检查过一下都有跑出我有传送讯息
接收端每次都会跑出Receive timed out这个讯息
所以我现在不懂的地方是为甚麽我的接收端没办法接收到讯息呢??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.126.10.223
1F:推 PCIT:试一下只用3G,收不收的到 02/06 06:54
2F:→ jimmylo:我找手机试试看好了!!感谢建议 02/06 15:34
3F:→ CroachX:你接收端有试过什麽装置?系统版本? 02/07 12:22
4F:→ jimmylo:我接收端用I9023的手机传的也是 02/07 14:49
5F:→ jimmylo:2.3.6版本的样子但是我核心是开2.2下去跑 02/07 14:49
6F:→ jimmylo:问题已解决!! 02/11 01:40