2017-02-10 1 views
1

TCP 연결을 통해 문자열을 전송해야합니다. 이를 위해 Intended없이 한 획씩 내 객체 (10000 이상의 라인 목록)를 직렬화 할 수 있습니다. 그러나 큰 문자열은 전송되지 않습니다 (버퍼 크기로 인해 이해함). 그래서이 페이지 (https://docs.microsoft.com/ru-ru/windows/uwp/networking/sockets)의 MSDN은 나에게 분할 된 스트로크 전송을 위해 IBuffer를 사용한다고 말합니다. 다음은 코드입니다.TCP 메시지 용 UWP의 IBuffer

// More efficient way to send packets. 
// This way enables the system to do batched sends 
IList<IBuffer> packetsToSend = PreparePackets(); 
var outputStream = stream.OutputStream; 

int i = 0; 
Task[] pendingTasks = new Tast[packetsToSend.Count]; 
foreach (IBuffer packet in packetsToSend) 
{ 
pendingTasks[i++] = outputStream.WriteAsync(packet).AsTask(); 
} 
// Now, wait for all of the pending writes to complete 
    await Task.WaitAll(pendingTasks); 

PraparePackets() 메소드 란 무엇입니까? 스트로크에서 패킷을 준비하는 방법?

편집 : 알바하리 (Allahahari)로 작성된 DataReader 및 DataWriter를 사용하여 솔루션을 찾았습니다.

+0

이미 문제가 해결 된 것 같습니다. 명확하고 편리하게 더 많은 사람들을보기 위해서, [자신의 질문에 답할 수 있습니다] (http://stackoverflow.com/help/self-answer). –

+0

지원해 주셔서 감사합니다. – AlfredBauer

답변

0

알바하리 (Albahari)에 작성된 DataReader 및 DataWriter로 솔루션을 찾았습니다. (16 번째 끝).