我有两个类,一个发件人类,另一个是接收者类。发送和接收应用程序都在几秒钟后停止并关闭。 我的发件人类是:发送和接收数据报套接字上的UDP数据包android
public class MainActivity extends Activity {
InetAddress receiverAddress;
DatagramSocket datagramSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
datagramSocket = new DatagramSocket(4444);
} catch (SocketException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
byte[] buffer = "".getBytes();
byte[] address="192.168.1.101".getBytes();
try {
receiverAddress = InetAddress.getByAddress(address);
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
DatagramPacket packet = new DatagramPacket(
buffer, buffer.length, receiverAddress, 4444);
try {
datagramSocket.send(packet);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我接收或听力课是:事先的帮助
public class MainActivity extends Activity {
DatagramSocket datagramSocket;
DatagramPacket packet;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1=(TextView)findViewById(R.id.textView1);
try {
datagramSocket = new DatagramSocket(80);
} catch (SocketException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
byte[] buffer = new byte[10];
packet = new DatagramPacket(buffer, buffer.length);
try {
datagramSocket.receive(packet);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] buff = packet.getData();
tv1.setText(buff.toString());
}
感谢。
我认为你必须在单独的线程或新线程上运行这些数据报事务,尽管我不确定这是否能解决你的问题 – kabuto178
你的logcat中有什么? –