이전 포스팅 주제
이전 포스팅에서는 안드로이드에서 서버 소켓을 생성하여 bind, listen 하는 방법에 대해 알아보았습니다.
오늘은 클라이언트 소켓을 생성하고 서버 소켓에 연결한 후 메세지를 전송하는 방법에 대해 알아보겠습니다.
2023.07.24 - [Android] - [안드로이드] 서버 및 클라이언트 소켓 통신 - 1
클라이언트 소켓 생성 및 서버 소켓에 connect 예제
안드로이드에서 클라이언트 소켓을 생성하고 서버 소켓에 연결하는 예제입니다.
이전 포스팅에서 서버 소켓의 포트 번호는 5300번 이었으므로 동일한 번호로 연결합니다.
try {
Socket socket = new Socket("127.0.0.1", 5300);
// 서버와 통신 수행
} catch (IOException e) {
e.printStackTrace();
}
위의 예제에서는 Socket 클래스를 사용하여 클라이언트 소켓을 생성하고, Socket 생성자에 서버의 IP 주소와 포트 번호를 전달하여 서버 소켓에 연결합니다.
클라이언트 소켓으로 서버에 메세지 전송 예제
안드로이드에서 클라이언트 소켓을 사용하여 서버에 메세지를 전송하는 예제입니다.
try {
Socket socket = new Socket("127.0.0.1", 5300);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message = "Hello, Server!";
out.println(message);
} catch (IOException e) {
e.printStackTrace();
}
위의 예제에서는 PrintWriter 클래스를 사용하여 클라이언트 소켓으로 서버에 메세지를 전송합니다.
서버 소켓으로 클라이언트 소켓으로부터 메세지 수신 후 응답 전송 예제
안드로이드에서 서버 소켓을 사용하여 클라이언트 소켓에 응답을 전송하는 예제입니다.
try {
ServerSocket serverSocket = new ServerSocket(5300);
serverSocket.setSoTimeout(9999);
while (true) {
Socket socket = serverSocket.accept();
// 클라이언트로부터 메세지 읽기
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientMessage = reader.readLine();
// 응답 메세지 생성
String response = "서버 응답: " + clientMessage;
// 클라이언트에 응답 전송
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
writer.println(response);
}
} catch (IOException e) {
e.printStackTrace();
}
위의 예제에서는 ServerSocket 클래스를 사용하여 서버 소켓을 생성하고, accept() 메서드를 사용하여 클라이언트의 연결을 수신합니다.
클라이언트로부터 메세지를 읽기 위해 BufferedReader를 사용하고, 응답을 전송하기 위해 PrintWriter를 사용합니다.
클라이언트로부터 읽은 메세지를 응답으로 가공하여 전송합니다.
안드로이드에서 소켓 통신을 활용하면 네트워크 기반 애플리케이션을 다양하게 개발할 수 있습니다.
권한 설정, 소켓 생성, 통신 예제 등을 포함하여 안드로이드 소켓 통신의 활용법을 상세히 설명하는 블로그 게시물을 통해, 사용자가 안드로이드 애플리케이션에서 안정적이고 효율적인 네트워크 통신을 구현할 수 있도록 도움을 줄 수 있습니다.