[kotlin] 코틀린 안드로이드에서의 UDP 통신 처리 방법

UDP(User Datagram Protocol)는 데이터를 신뢰할 수 없는 네트워크 상에서 보내고 받기 위한 프로토콜로, 안드로이드 앱이 다른 기기나 서버와 통신할 때 유용합니다. 코틀린을 사용하여 안드로이드 앱에서 UDP 통신을 구현하는 방법을 살펴보겠습니다.

1. 권한 설정

UDP 통신을 위해 안드로이드 매니페스트 파일에 인터넷 권한을 추가해야 합니다. 다음과 같이 매니페스트 파일에 권한을 추가합니다.

<uses-permission android:name="android.permission.INTERNET" />

2. UDP 클라이언트 작성

UDP 클라이언트를 작성하기 위해 DatagramSocketDatagramPacket 클래스를 사용합니다. 다음은 UDP 클라이언트를 작성하는 샘플 코드입니다.

import java.net.DatagramPacket
import java.net.DatagramSocket
import java.net.InetAddress

class UDPClient(private val serverIp: String, private val serverPort: Int) {
    fun sendData(data: ByteArray) {
        DatagramSocket().use { socket ->
            val address = InetAddress.getByName(serverIp)
            val packet = DatagramPacket(data, data.size, address, serverPort)
            socket.send(packet)
        }
    }
}

위 코드에서 sendData 메서드는 UDP 서버로 데이터를 전송하는 역할을 합니다.

3. UDP 서버 작성

UDP 서버를 작성하기 위해 DatagramSocketDatagramPacket 클래스를 사용합니다. 다음은 UDP 서버를 작성하는 샘플 코드입니다.

import java.net.DatagramPacket
import java.net.DatagramSocket

class UDPServer(private val port: Int) {
    fun startServer() {
        val buffer = ByteArray(1024)
        val packet = DatagramPacket(buffer, buffer.size)
        DatagramSocket(port).use { socket ->
            while (true) {
                socket.receive(packet)
                val receivedData = String(buffer, 0, packet.length)
                // 수신한 데이터 처리
            }
        }
    }
}

위 코드에서 startServer 메서드는 UDP 서버를 시작하고, 클라이언트로부터 데이터를 수신하여 처리하는 역할을 합니다.

이제 위의 예제 코드를 참고하여 안드로이드 코틀린 앱에서 UDP 통신을 구현할 수 있습니다.

참고 자료

위의 코드는 안드로이드에서의 UDP 통신 구현을 간단하게 설명한 것이며, 실제 앱에서의 사용에 따라 보안 및 예외 처리 등을 고려해야 합니다.