微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 无法在Android平台上使用InputStream为蓝牙套接字创建ObjectInputStream

我正在为 Android手机编写多人游戏.通过蓝牙进行通信.我已设法使用输入/输出流将字节从一个电话发送到另一个电话.因为我需要能够传输我想要的对象流的对象.但是,当我尝试使用我的流创建一个Objectstream时,我的程序挂起了指令.
public class ConnectedThread extends Thread {
private static final String TAG = "Connected Thread";
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
private Handler mHandler;
private ObjectInputStream ois;
private ObjectOutputStream oos;

public ConnectedThread(BluetoothSocket socket,Handler h) {
    mmSocket = socket;
    mHandler = h;

    InputStream tmpIn = null;
    OutputStream tmpOut = null;

    // Get the input and output streams,using temp objects because
    // member streams are final
    try {
        tmpIn = socket.getInputStream();
        tmpOut = socket.getoutputStream();
    } catch (IOException e) { }

    mmInStream = tmpIn;
    mmOutStream = tmpOut;
    Log.d(TAG,"attempting to create OIS");

    try {
    ois = new ObjectInputStream(mmInStream);

//指令new ObjectInputStream(mmInStream)永远不会完成执行.它似乎没有抛出错误,因为我抓住了它.它只是挂在这个指令.此行下面的代码都没有执行过.

} catch (Exception e) {

        Log.e(TAG,"Error");
        Log.d(TAG,e.getMessage());
        e.printstacktrace();
    } 

    Log.d(TAG,"attempting to create OOS");
    try {
        oos = new ObjectOutputStream(mmOutStream);
    } catch (IOException e) {
        Log.e(TAG,"IO exception for Output Stream,I have no idea what caused this");
        Log.d(TAG,e.getMessage());
    }

}

public void run() {.....}

我究竟做错了什么?

解决方法

在构造ObjectInputStream之前,只需构造ObjectOutputStream,并在两端刷新().您不必编写自己的任何数据.

原文地址:https://www.jb51.cc/android/130172.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐