我目前正在开展一个项目,将Android版的直播SDK移植到WP 8.1版本。我试图通过套接字流请求服务器(SERVER B)的路径列表。 我是这样做的:
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,这只是部分结果。
奇怪的是,我曾尝试从另一台服务器(服务器A)接收字节以获取频道列表,
// 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();
它一次性加载整个字节。
我尝试应用这段代码与SERVER B进行交互,但byteList仍然返回16的长度。
我该怎么办?
答案 0 :(得分:0)
我的坏。这是我的错。 因此,服务器的工作方式是根据SDK /客户端应用程序中的请求消息(通道ID查询)部署响应。我发现我要求输入错误的通道ID,这就是为什么服务器没有以预期的方式响应的原因。
非常感谢您试图帮助我。