大家好,现在写了个简单的程序,想使用socket通过wifi发送数据,现在在OnCreate中创建了socket,
代码如下:sck=new DatagramSocket(48392);
我想在EditText中显示手机IP地址:ed..setText(sck.getLocalAddress().toString());模拟器中显示/0.0.0.0,手机中显示/::,请问是什么原因?是socket创建不成功吗?应该如何解决? 一个按钮事件发送数据:
代码如下:
byte[] data=ed.getText().toString().getBytes();
pkg=new DatagramPacket(data,data.length,InetAddress.getByName("255.255.255.255"),48392);
sck.setBroadcast(true);
sck.send(pkg); 这段简单代码一直发送不出去,请教原因,谢谢大家!!
代码如下:sck=new DatagramSocket(48392);
我想在EditText中显示手机IP地址:ed..setText(sck.getLocalAddress().toString());模拟器中显示/0.0.0.0,手机中显示/::,请问是什么原因?是socket创建不成功吗?应该如何解决? 一个按钮事件发送数据:
代码如下:
byte[] data=ed.getText().toString().getBytes();
pkg=new DatagramPacket(data,data.length,InetAddress.getByName("255.255.255.255"),48392);
sck.setBroadcast(true);
sck.send(pkg); 这段简单代码一直发送不出去,请教原因,谢谢大家!!
未指定IP时或者IP为0.0.0.0时,套接字将被绑定到通配符地址,IP 地址由内核选择。
所以,获得到0.0.0.0是正常的,手机上则会获取到/::也是正常的,通过sck.getLocalSocketAddress().toString()可以获得到端口号,如果有端口号就是成功了。
你数据发不出去的原因,应该是你未指明接收端的IP地址,255.255.255.255这个是掩码地址,并不是IP地址。
你要指定接收方的IP地址及端口号。
new DatagramPacket(data,data.length,InetAddress.getByName("255.255.255.255"),48392);