真素气鼠,在一个demo里跑成功的代码,拷贝到另一个项目就不行了。原因是代码执行到创建DatagramSocket对象时就阻塞了。搞了半天,改来改去,最后发现是权限忘记添加了。
在AndroidManifest.xml中添加:
<uses-permission android:name="android.permission.INTERNET" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<uses-permission android:name="android.permission.INTERNET" />
<application
..............略
</application>
</manifest>
还有个注意点是,网络操作要放在子线程中,否则也会引起阻塞。
new Thread(new Runnable() {
public void run() {
try {
DatagramSocket socket = new DatagramSocket();
byte[] buf = newMessage.getBytes();
DatagramPacke