나는 안드로이드 OS로 개발 중이다. 안드로이드 OS 용 텔넷 클라이언트를 개발하려고합니다. 이제 텔넷 서버에 연결하고 로그인 메시지 만 수신하려고 시도합니다.안드로이드 텔넷 클라이언트 문제
하지만 텔넷 서버에 연결하기 위해 소켓을 시작하면 텔넷 서버의 로그온 메시지 대신 ??????!????
이라는 이상한 기호가 나타납니다.
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();
}
}
}
이상한 기호를 생성하는 바이트 값을 인쇄하여 알려주십시오. –
[이 질문] (http://stackoverflow.com/questions/10413963/telnet-iac-command-answering/10418479#10418479)이 문제를 밝히는 경우를 고려하십시오. –
감사합니다. 당신 말이 맞습니다. 텔넷은 간단한 tcp 연결이 아닙니다. –