2

我正在尝试使用 Android 蓝牙套接字发送文件。我收到了配对请求,但不幸的是,我的服务器端和客户端没有传输数据,如下所示:

服务器:(因为我的应用服务器正在接收数据)

public void run() {
super.run();

    BluetoothAdapter mBtadapter = BluetoothAdapter.getDefaultAdapter();
    Log.i("bluetooth Adapter", "got adapter "+ mBtadapter.getAddress());

    try {
        Ssocket = mBtadapter.listenUsingRfcommWithServiceRecord("CardXchange", uuid);


        Log.i("Socket", "Socket Acquired "+ Ssocket.toString());
    } catch (IOException e) {

        e.printStackTrace();
    } 



    while(true){

        if(read_flag()==1){

            try {
                Toast.makeText(c, "flag is eventually 1", Toast.LENGTH_LONG).show();
                Ssocket.close();
            } catch (IOException e) {

                e.printStackTrace();
            }
            break;

        }





        try {
            client_socket = Ssocket.accept();
            if(client_socket!=null){

//this function is used to handle the connection when sockets get connected
            manageConnection1(client_socket);

                Ssocket.close();

                break;
            }
        } catch (IOException e) {

            e.printStackTrace();
        }



    }

    Log.i("breaked ", "oh god!! out of the loop ");
}


//implementation of the function
private void manageConnection1(BluetoothSocket client_socket2) {
    // TODO Auto-generated method stub
    int bytes;

    Log.i("serevr chya manage connection madhe gela", "in servers manage connection ");

    File file =  new File("/sdcard/myfolder/received.Xcard");

    try {
        FileOutputStream fos = new FileOutputStream(file);
        try {
            InputStream is = client_socket2.getInputStream();



            while((bytes = is.read(buffer, 0, 1024))>0){

                fos.write(buffer, 0, 1024);

            }


            is.close();
            fos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } 

    try {
        client_socket2.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

和客户端(发送端是这样的):

public void run(){

                try {

                    Method m = send_dev.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
                    Csocket = (BluetoothSocket) m.invoke(send_dev, 1);
                    Csocket.connect();
                    manageSendConnection(Csocket);

                }catch(Exception e){

                    e.printStackTrace();
                }


            }

   //function to handle after connection is established.

            private void manageSendConnection(BluetoothSocket csocket) {
                // TODO Auto-generated method stub


                File f = new File("/sdcard/myfolder/card3.Xcard");
                byte[] buffer = new byte[(int)f.length()];
                try {
                    FileInputStream fis = new FileInputStream(f);
                    BufferedInputStream bis = new BufferedInputStream(fis);
                    try {
                        bis.read(buffer, 0, (int)f.length());

                        OutputStream os = csocket.getOutputStream();
                        os.write(buffer);
                        os.close();
                        fis.close();
                        bis.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } 

                try {
                    csocket.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

我收到配对请求,但未发送数据。谁能帮我找到问题并给出解决方案的提示?

4

0 回答 0