首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android telnet客户端问题

Android telnet客户端问题
EN

Stack Overflow用户
提问于 2013-03-01 18:59:22
回答 2查看 1.6K关注 0票数 0

我是一个在android OS上开发的新手。我试着为android操作系统开发我的telnet客户端。现在,我只尝试连接telnet服务器,并接收登录消息。

但是当我启动socket连接远程登录服务器时,我收到了奇怪的符号??????!????,而不是来自远程登录服务器的登录消息。

代码语言:javascript
复制
public class MainActivity extends Activity {
    protected static final int TCP_SERVER_PORT = 23;
    protected String inMsg, str;
    static Editable sentence;
    static String modifedSentence;
    BufferedReader inFromUser;
    Socket clientSocket = null;
    DataOutputStream outToServer=null;
    BufferedReader inFromServer=null;        

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button startButton = (Button)findViewById(R.id.startButton);
        final TextView textView = (TextView)findViewById(R.id.textView);

        startButton.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                new Thread(new Runnable() {                   

                    @Override
                    public void run() {             

       //Create socket
        try {
        clientSocket = new Socket("192.168.1.1",23);
       //Create out stream for ClientSocket
            outToServer = new DataOutputStream(clientSocket.getOutputStream());
       //Create ib stream for ClientSocket          
        inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
       //Receive login message from telnet server
            modifedSentence = inFromServer.readLine();
        } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
                 //Update UI activity with login message
         MainActivity.this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                          textView.setText(modifedSentence);
                    }
                });   
        }
             }).start();
    }   
        });         
    }

   protected void onDestroy()
    {
        try {
            clientSocket.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
EN

回答 2

Stack Overflow用户

发布于 2013-03-01 19:07:50

这些“奇怪的”符号??????!????意味着你使用了错误的编码。当您创建InputStreamReader时,您应该显式地指出这个流应该使用哪种编码。我不知道您的telnet服务中使用了哪种编码,但您可以尝试各种编码,例如windows-1252

new InputStreamReader(clientSocket.getInputStream(), Charset.forName("windows-1252"))

票数 0
EN

Stack Overflow用户

发布于 2013-03-29 19:34:41

Telnet应用程序需要telnet协议才能连接到telnet服务器。这不是一个简单的tcp连接。我使用的是apache通用库,它提供了telnet访问的类。谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15156115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档