如何将变量值传递给套接字字符串

问题描述 投票:-2回答:1

我对Android开发很陌生,所以这可能是一个愚蠢的问题。我正在使用一个firestone数据库,其中包含特定用户的IP地址和端口。我能够将该值转换为变量,但很难将该值传递给套接字连接。

我试图安排一个公共课而不是保护,并在这个论坛上遵循一些指导,但我认为仍然不清楚如何解决它。


public class DataSender extends AsyncTask<String,Void,Void> {

    Socket s;
    DataOutputStream dataOutputStream;
    PrintWriter printWriter;

    @Override
    protected Void doInBackground(String... voids) {

        String currentuser = FirebaseAuth.getInstance().getCurrentUser().getEmail();
        FirebaseFirestore db = FirebaseFirestore.getInstance();
        DocumentReference docRef = db.collection("User").document(currentuser);
        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document != null) {
                        String UIPaddress = document.getString("ipAddress");
                        String uport = document.getString("port");

                    } else {
                        Log.d("LOGGER", "No such document");
                    }
                } 
            }
        });


        String  messg=voids[0];
        try {

            s=new Socket(UIPaddress ,uport );
            printWriter=new PrintWriter(s.getOutputStream());
            printWriter.write(messg);
            printWriter.flush();
            printWriter.close();
            s.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}


上面的代码抛出错误无法解析符号'UIPaddress'。无法解析符号'uport'。

java android
1个回答
0
投票

最后,我能够通过使用Global变量来解决我的问题。希望这会有助于其他新手。

Socket s;
DataOutputStream dataOutputStream;
PrintWriter printWriter;
public static String uIpaddress ;
public static int uport;

推荐问答