2
현재 라이브 스트리밍 SDK의 Android 버전을 WP 8.1 버전으로 이식하는 프로젝트를 진행 중입니다. 소켓 스트림을 통해 서버 (서버 B)에 대한 경로 목록을 요청하려고합니다. 내가 초기 길이를 알 수 없기 때문에, 내가 바이트 당을로드하고있어LoadAsync WP8.1 : 부분 결과
DataReader reader = new DataReader(socket.InputStream);
reader.InputStreamOptions = InputStreamOptions.Partial;
List<byte> byteList = new List<byte>();
while (true)
{
uint bytesAvailable = await reader.LoadAsync(1);
if (bytesAvailable == 0) break;
byte[] arrayByte = new byte[bytesAvailable];
reader.ReadBytes(arrayByte);
for (int j = 0; j < arrayByte.Length; j++)
{
byteList.Add(arrayByte[j]);
}
}
: 여기 내가 그것을 할 방법이다. 전화 할 때
byteList.Count();
항상 부분 결과 인 16을 반환합니다.
이상하게 충분히, 나는 그것은 하나의 이동에 전체 바이트를로드
// Read from the stream socket
DataReader msgToRead = new DataReader(socket.InputStream);
msgToRead.InputStreamOptions = InputStreamOptions.Partial;
uint bytesAvailable = await msgToRead.LoadAsync(224);
byte[] byteArray = new byte[bytesAvailable];
msgToRead.ReadBytes(byteArray);
byteList = byteArray.ToList();
채널 목록을 얻으려면 다른 서버 (서버 A)에서 바이트를 수신 시도했다.
나는 서버 B와 상호 작용하는 코드의이 부분을 적용하려고했으나 byteList 아직도 내가 무엇을해야합니까 (16)의 길이를 반환?
'LoadAsync'가'0'을 반환하면, 그것은 데이터의 끝입니다. 가장 좋은 방법은 서버 B를 확인하고 16 바이트를 초과하여 전송하는지 확인하는 것입니다. –