0

Python (Twisted) でサーバーを作成し、iOS に接続したいのですが、問題があります。

これは私がサーバーに接続する方法です:

CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", 3000, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];

問題は RunLoop に付属しています。サーバーに 1 つのメッセージを送信したくないとします。それから私はするだろう:

NSData *data = [[NSData alloc] initWithData:[message dataUsingEncoding:NSASCIIStringEncoding]];
[outputStream write:[data bytes] maxLength:[data length]];

しかし、2 つのメッセージを 1 つずつ送信したくない場合はどうすればよいでしょうか? その後、メッセージ 1 とメッセージ 2 を使用してコードを実行できますが、クライアントが実際に送信するのは、2 つの異なるメッセージではなく、メッセージ 1 + メッセージ 2 の連結です。これは、メッセージを同じ「ループ」で outputStream に書き込むためだと思います。したがって、ストリームが最終的にデータを送信することを決定すると、両方が送信されます...解決策がわかりません。SERVER が複数のメッセージを CLIENT に「非常に高速に」送信した場合も、同じことが起こります。私は何をすべきか?

4

1 に答える 1