0

我正在开发一个应用程序来向端口 502 发送请求,并希望从同一端口读取响应。

这是我到目前为止尝试过的

public class Autoamtion extends Activity {

    Socket echoSocket = null;
    PrintWriter out = null;
    BufferedReader in = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Log.v("on create", "on create");
        final ToggleButton fanOn = (ToggleButton) findViewById(R.id.toggleButton1);
        fanOn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (fanOn.isChecked()) {
                    Toast.makeText(Autoamtion.this, "Fan is On",
                            Toast.LENGTH_SHORT).show();
                    Log.v("on create", "on create");
                    try {
                        echoSocket = new Socket("192.168.1.19", 502);
                        out = new PrintWriter(echoSocket.getOutputStream(),
                                true);
                        in = new BufferedReader(new InputStreamReader(
                                echoSocket.getInputStream()));
                    } catch (UnknownHostException e) {
                        System.err.println("Don't know about host: taranis.");
                        System.exit(1);
                    } catch (IOException e) {
                        System.err.println("Couldn't get I/O for "
                                + "the connection to:192.168.1.19");
                        System.exit(1);
                    }

                    BufferedReader stdIn = new BufferedReader(
                            new InputStreamReader(System.in));
                    String userInput;

                    try {
                        while ((userInput = stdIn.readLine()) != null) {
                            out.println(userInput);
                            System.out.println("echo: " + in.readLine());
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    out.close();
                    try {
                        in.close();

                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    try {
                        stdIn.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    try {
                        echoSocket.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } else
                    Toast.makeText(Autoamtion.this, "Fan is Off",
                            Toast.LENGTH_SHORT).show();
            }
        });
    }
}

我刚刚安装了一个打开端口 502 的模拟器。我确认了在运行此模拟器后打开的端口。
我刚刚建立了与 502 端口的连接。我没有从那里得到任何回应。

请指导我完成此操作,以便我可以使其正常工作。任何建议和帮助将不胜感激。
谢谢

4

1 回答 1

0

您还应该发布 stackTrace 以检查失败的原因。

至少有一件事在您的信息中不一致,您在文本port 503和代码中引用您正在使用echoSocket = new Socket("192.168.1.19", 502);连接到 port 502

于 2012-10-16T10:33:37.710 回答