본문 바로가기
Android/안드로이드 기본지식

wifi p2p 통신 시 특정 크기의 단위로 데이터 전송 방법

by 붕어사랑 티스토리 2023. 1. 17.
반응형

1. 개요

안드로이드에서 wifi p2p로 데이터 통신을 하다보면 특정 데이터 사이즈 크기만큼 자르면서 데이터를 전송하고 싶을 때가 있다.

 

허나 자바스크립트와 다르게 안드로이드는 이러한 방법에대한 API를 제공하지 않고 그저 continuous하게 데이터를 읽는 방법만 제공하고 있다.

 

 

 

2. 아이디어

read함수는 데이터를 특정 길이만큼 읽어올 수 있다. 허나 실제로 읽어온 데이터의 길이는 내가 요청한 데이터와 다를 수 있고, 함수의 리턴값으로 실제 읽어온 값을 사용한다.

 

이 리턴값을 이용하면 특정 데이터 크기만큼만 자르면서 읽어오는것이 가능하다

 

아래는 그 예시이다

 

val inputStream = socket.getInputStream()
var result = ByteArray(614398)
var needToRead = 614398
var offset = 0
while (true) {
    var actualRead = inputStream.read(result, offset, needToRead)
    offset += actualRead
    needToRead -= actualRead
    if (needToRead == 0) {
        needToRead = 614398
        offset = 0
        ...
    }
    ...    
}
반응형

댓글