[kotlin] 코틀린 안드로이드에서의 UDP 통신 처리 방법
UDP(User Datagram Protocol)는 데이터를 신뢰할 수 없는 네트워크 상에서 보내고 받기 위한 프로토콜로, 안드로이드 앱이 다른 기기나 서버와 통신할 때 유용합니다. 코틀린을 사용하여 안드로이드 앱에서 UDP 통신을 구현하는 방법을 살펴보겠습니다.
1. 권한 설정
UDP 통신을 위해 안드로이드 매니페스트 파일에 인터넷 권한을 추가해야 합니다. 다음과 같이 매니페스트 파일에 권한을 추가합니다.
<uses-permission android:name="android.permission.INTERNET" />
2. UDP 클라이언트 작성
UDP 클라이언트를 작성하기 위해 DatagramSocket
및 DatagramPacket
클래스를 사용합니다. 다음은 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 서버를 작성하기 위해 DatagramSocket
및 DatagramPacket
클래스를 사용합니다. 다음은 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 통신 구현을 간단하게 설명한 것이며, 실제 앱에서의 사용에 따라 보안 및 예외 처리 등을 고려해야 합니다.