今天寫android socket編程的時候,遇到一個問題:
代碼如下:
new Thread(new Runnable() {
@Override
public void run() {
try {
mServerSocket = new ServerSocket(mPort);
mServer = mServerSocket.accept();
mServerOut = new DataOutputStream(mServer.getOutputStream());
mServerIn = new DataInputStream(mServer.getInputStream());
String contentReceive = mServerIn.readUTF();
Message msg = new Message();
msg.obj = contentReceive;
msg.what = MSG_ON_RECEIVE;
mHandler.sendMessage(msg);
} catch (IOException e) {
Log.d(Constants.TAG, "receive---" + e.toString());
e.printStackTrace();
}
}
}).start();
報錯信息如下:
java.net.BindException: bind failed: EACCES (Permission denied)
解決方法:
1. 沒有添加權限:<uses-permission android:name="android.permission.INTERNET" />
2. 權限書寫不規範:<uses-permission android:name="android.permission.INTERNET" />替換<uses-permission android:name="android.permission.INTERNET"></uses-permission>
3. 綁定端口號小於1024