空指针异常问题
public class UdpClientBiz { //服务器IP private String mServerIp = "192.168.95.2"; //服务器端口号 private int mServerPort = 7777; //服务器的InetAddress private InetAddress mServerAddress; //DatagramSocket private DatagramSocket datagramSocket; public UdpClientBiz() { try { //通过服务器IP获取服务器的InetAddress对象 mServerAddress = InetAddress.getByName(mServerIp); //实例化DatagramSocket对象 this.datagramSocket = new DatagramSocket(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } } //用来处理服务器返回的数据 public interface OnReturnedMsgListener { void handleMsg (String msg); } //向服务器发送、接收数据 public void sendAndReceiveMsg (final String msg, final OnReturnedMsgListener listener) { new Thread(new Runnable() { @Override public void run() { try { //发送数据到服务器 byte[] clientMsgBytes = msg.getBytes(); DatagramPacket clientPacket = new DatagramPacket(clientMsgBytes, clientMsgBytes.length, mServerAddress, mServerPort); datagramSocket.send(clientPacket); //从服务器接收数据 byte[] buf = new byte[1024]; DatagramPacket serverMsgPacket = new DatagramPacket(buf, 0, buf.length); datagramSocket.receive(serverMsgPacket); //处理从服务器接收的数据 listener.handleMsg(new String(serverMsgPacket.getData())); } catch (IOException e) { e.printStackTrace(); } } }).start(); } }
在执行
datagramSocket.send(clientPacket);
的时候报了一个DatagramSocket的空指针异常,为何?
15
收起
正在回答 回答被采纳积分+1
1回答
Android数据通信开发与应用2018版
- 参与学习 人
- 提交作业 147 份
- 解答问题 687 个
本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星