[Android] TCP/IP 프로그램 테스트 - 에뮬레이터 이용
android의 WIFI 기능을 이용하면 네트웍으로 연결된 장치들을 쉽게 제어 가능하므로 안드로이드 측에서 TCP 소켓 통신 테스트를 해 두면 여러모로 쓰일곳이 많을 것 같다.
Androd TCP/IP 테스트 프로그램소스코드
TCP 접속 처리 함수
서버 IP는 PC의 IP를 입력하면 된다.
InetAddress serverAddr = InetAddress.getByName(serverIP);
try
{
socket = new Socket(serverAddr, serverPort);
ctlText1.setText("성공");
}
catch (Exception e)
{
ctlText1.setText("실패");
}
try
{
socket = new Socket(serverAddr, serverPort);
ctlText1.setText("성공");
}
catch (Exception e)
{
ctlText1.setText("실패");
}
TCP전송 처리 함수
EditText message_box;
message_box = (EditText) findViewById(R.id.editText3)
try
{
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
out.println(message_box.getText().toString());
}
catch (Exception e)
{
ctlText1.setText("Error:" + e);
}
message_box = (EditText) findViewById(R.id.editText3)
try
{
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
out.println(message_box.getText().toString());
}
catch (Exception e)
{
ctlText1.setText("Error:" + e);
}
데이처 수신 처리 함수
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
if(in != null)
{
DataInBuffer = in.readLine();
tv.setText(DataInBuffer);
}
} catch(Exception e)
{
ctlText1.setText("Error:" + e);
}
{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
if(in != null)
{
DataInBuffer = in.readLine();
tv.setText(DataInBuffer);
}
} catch(Exception e)
{
ctlText1.setText("Error:" + e);
}
주의사항
TCP테스틀 하기 위해서는 manifast 파일에 Uses Permission 설정을 해 주어야 한다. 설저 하지 않으면 TCP접속시 에러가 발생한다.
Android TCP 테스트
우선 가상 장치에서 TCP Client모드로 서버에 접속하는 예제 이므로, PC쪽에 서버가 필요하다.
서버 프로그램은 예전에 작성했던 TCP Server/Client Host Program(VC++) 예제 프로그램으로 테스트 한다.
EthernetHost.exe
에뮬레이터에서 접속하면 이벤트 보내주고 데이터를 송수신 할 수 있다.
android TCP 소켓 테스트 예제
반응형