私は自分の電話で SocketServer を動作させようとしています。最近 ICS にアップグレードしたので、慣れていない別のスレッドでネットワーク処理を行う必要があります。いくつかのコードを書きましたが、ソケットに接続しようとするとすぐにアプリがクラッシュします。
トグル オン/オフ スイッチが切り替えられると、serverSocket を開始します。
final Switch connectionSwitch = (Switch) findViewById(R.id.connectionSwitch);
connectionSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
new Thread(){
public void run() {
try {
serverSocket = new ServerSocket(port);
socket = serverSocket.accept();
outToServer = new DataOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
while(connectionSwitch.isChecked()) {
myPacket[0] = (byte) 0xAA;
myPacket[1] = (byte) 0x01;
myPacket[2] = (byte) (fanFrontSpeed/256);
myPacket[3] = (byte) (fanFrontSpeed%256);
myPacket[4] = (byte) (fanLeftSpeed/256);
myPacket[5] = (byte) (fanLeftSpeed%256);
myPacket[6] = (byte) (fanRightSpeed/256);
myPacket[7] = (byte) (fanRightSpeed%256);
try {
outToServer.write(myPacket,0,8);
} catch (IOException e) {
e.printStackTrace();
}
}
try {
socket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}.start();
}
}
});
私が得るエラーは次のとおりです。
FATAL EXCEPTION: Thread-4487
java.lang.NullPointerException