![](/img/trans.png)
[英]Can I use NSStream, NSInputStream, and NSOutputStream to send and receive data from a C# application?
[英]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.