Android UDP广播无法发送数据

lbzhang_upc 2013-08-26 04:35:04
Debug调试在socket.send(packet);出错,求解。。。。
class ClientClass extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
try {
InetAddress serverAddress=InetAddress.getByName("255.255.255.255");
int messageCount=0;
DatagramSocket socket=new DatagramSocket();
byte[] buffer=localIpAddress.getBytes();
DatagramPacket packet=new DatagramPacket(buffer,buffer.length,serverAddress,4567);
while (true) {
try {
socket.send(packet);
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
System.out.println("Send Data:" + new String(packet.getData()));
Toast.makeText(MainActivity.this, "数据已发送!", Toast.LENGTH_SHORT).show();
try {
Thread.sleep(1000);
} catch (Exception e) {
// TODO: handle exception
}
messageCount++;
buffer = (localIpAddress + messageCount).getBytes();
packet.setData(buffer,0,buffer.length);
}

} catch (Exception e) {
// TODO: handle exception
Toast.makeText(MainActivity.this, "数据未能发送!", Toast.LENGTH_SHORT).show();
}
super.run();
}
}
...全文
447 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈哈gogo 2014-04-18
  • 打赏
  • 举报
回复
解决了,其实错误仅仅在于一个toast的使用上,android规定,不可以在其他线程中直接操作UI控件,因此当我使用toast这个UI控件是就会报错,同时还有另外一点是对于网络操作,android规定一定要开辟新线程,否则肯定会报错,无论如何谢谢几位了。分给你们了。
Leson_Yin 2013-12-17
  • 打赏
  • 举报
回复
是的。。如果要更新ui 主线程,用 Handler 、、、
lbzhang_upc 2013-09-15
  • 打赏
  • 举报
回复
解决了,其实错误仅仅在于一个toast的使用上,android规定,不可以在其他线程中直接操作UI控件,因此当我使用toast这个UI控件是就会报错,同时还有另外一点是对于网络操作,android规定一定要开辟新线程,否则肯定会报错,无论如何谢谢几位了。分给你们了。
lth213 2013-08-28
  • 打赏
  • 举报
回复
貌似地址不能这样滴,一般都是最后一个字段是255,前面跟局域网地址一样。建议下个网络调试助手,先测试下,再看是不是代码的问题
凉凉二点凉 2013-08-27
  • 打赏
  • 举报
回复
引用 3 楼 zhanglianbo2 的回复:
[quote=引用 2 楼 guoyoulei520 的回复:] 255.255.255.255你这个server地址对吗?哪有地址是这样的
当Android使用socket UDP进行广播时就是需要使用这个IP地址。[/quote] 难道必须用255.255.255.255,有这种IP地址????client怎么把包发送到服务器端呢? 建议你换成server的ip
lbzhang_upc 2013-08-27
  • 打赏
  • 举报
回复
引用 2 楼 guoyoulei520 的回复:
255.255.255.255你这个server地址对吗?哪有地址是这样的
当我使用Debug进行调试时显示在DatagramPacket packet=new DatagramPacket(buffer,buffer.length,serverAddress,4567);这一条代码出错,试过好多程序,总是在这一行出错跳出。。。
lbzhang_upc 2013-08-27
  • 打赏
  • 举报
回复
引用 2 楼 guoyoulei520 的回复:
255.255.255.255你这个server地址对吗?哪有地址是这样的
当Android使用socket UDP进行广播时就是需要使用这个IP地址。
凉凉二点凉 2013-08-27
  • 打赏
  • 举报
回复
255.255.255.255你这个server地址对吗?哪有地址是这样的
荒颜 2013-08-27
  • 打赏
  • 举报
回复
代码没看出问题 换ip 改端口 多试试
lbzhang_upc 2013-08-27
  • 打赏
  • 举报
回复
引用 5 楼 guoyoulei520 的回复:
[quote=引用 3 楼 zhanglianbo2 的回复:] [quote=引用 2 楼 guoyoulei520 的回复:] 255.255.255.255你这个server地址对吗?哪有地址是这样的
当Android使用socket UDP进行广播时就是需要使用这个IP地址。[/quote] 难道必须用255.255.255.255,有这种IP地址????client怎么把包发送到服务器端呢? 建议你换成server的ip[/quote] 使用UDP发送数据,只管发,不管对方有没有收到,所以原则上讲是,不管ip如何都应当可以发出去,我也试过其他的ip但是错误一样。

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧