簡體   English   中英

如何在Objective-c中將數據從NSOutputStream傳遞到NSInputStream

[英]how to pipe data from NSOutputStream to NSInputStream in objective-c

我有兩個我想要集成的庫,讓它們相互通信。 他們每個人都聽自己的輸入和輸出流。 庫1將是庫2的傳輸層。

情況1:庫1接收其輸入流上的數據我想在另一個虛擬輸出流上寫入數據,該輸出流將通過管道傳輸到庫2上的輸入流。

案例2:庫2想要發送一些數據,因此它會將數據寫入其輸出流。 這應該通過管道傳輸到虛擬輸入流,數據將被讀取並寫入庫1的輸出流。

如何在objective-c中為這些NSStream創建管道?

提前感謝您的意見。

以下是創建簡單管道的方法:

CFReadStreamRef readStream = NULL;
CFWriteStreamRef writeStream = NULL;

CFStreamCreateBoundPair(NULL, &readStream, &writeStream, 4096);

NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream;
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream;

您寫入outputStream的內容將從inputStream中讀取。

Swift版本的Gabriele Mondada的答案

    var readStream:Unmanaged<CFReadStream>?
    var writeStream:Unmanaged<CFWriteStream>?

    CFStreamCreateBoundPair(nil, &readStream, &writeStream, 4096)

    let inputStream:NSInputStream = readStream!.takeRetainedValue()
    let outputStream:NSOutputStream = writeStream!.takeRetainedValue()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM