Android异步任务发送UDP数据包
我想使用asynctask发送数据报包,但它不起作用 我已经添加了所有可能需要的权限 我认为问题可能出在Android异步任务发送UDP数据包,android,sockets,android-asynctask,udp,Android,Sockets,Android Asynctask,Udp,我想使用asynctask发送数据报包,但它不起作用 我已经添加了所有可能需要的权限 我认为问题可能出在 socket.send(packet); 请帮我解决这个问题:) 是的,您需要实际分配套接字,异常是空指针,因为您声明了套接字,但在使用它之前没有分配它。现在,这应该可以工作了,但是您将不断地分配一个新的套接字。您应该使用我在下面插入的行:socket=new DatagramSocket(),并将其放在onCreate中 protected Boolean doInBackg
socket.send(packet);
请帮我解决这个问题:)
是的,您需要实际分配套接字,异常是空指针,因为您声明了套接字,但在使用它之前没有分配它。现在,这应该可以工作了,但是您将不断地分配一个新的套接字。您应该使用我在下面插入的行:socket=new DatagramSocket(),并将其放在onCreate中
protected Boolean doInBackground(String... arg0) {
byte [] ip_bytes = new byte[] {(byte)192,(byte)168,(byte)1,(byte)1};
try {
inet_addr = InetAddress.getByAddress(ip_bytes );
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("AT command: ","at_cmd)");
byte[] buffer = (at_cmd + "\r").getBytes();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, inet_addr, PORT);
try {
socket= new DatagramSocket();
socket.send(packet);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("///send at command","at command topic");
return null;
}
您没有初始化
套接字
public ATcommandThread()
{
socket = new DatagramSocket();
}
protected Boolean doInBackground(String... arg0) {
byte [] ip_bytes = new byte[] {(byte)192,(byte)168,(byte)1,(byte)1};
try {
inet_addr = InetAddress.getByAddress(ip_bytes );
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("AT command: ","at_cmd)");
byte[] buffer = (at_cmd + "\r").getBytes();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, inet_addr, PORT);
try {
socket= new DatagramSocket();
socket.send(packet);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("///send at command","at command topic");
return null;
}
public ATcommandThread()
{
socket = new DatagramSocket();
}