2017-03-28 3 views
1

ソケットフレームワークを使用して私が持っているソケットに接続しようとしています。私のような生のソケットのコードでうまく接続できています:iOSソケットフレームワークがサーバーソケットに接続できません

uint portNo = 9900; 
CFReadStreamRef readStream; 
CFWriteStreamRef writeStream; 
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"123.456.789.159", portNo, &readStream, &writeStream); 
inputStream = (__bridge NSInputStream *)readStream; 
outputStream = (__bridge NSOutputStream *)writeStream; 

[inputStream setDelegate:self]; 
[outputStream setDelegate:self]; 

[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[inputStream open]; 
[outputStream open]; 

が、私は任意のフレームワークにしようとしたとき、私はエラーを取得し、私は完全に理由として困惑します。私はSocketRocketとJetfireを試しました。私が試したSocketRocketでの接続のコードは次のとおりです。

_webSocket.delegate = nil; 
[_webSocket close]; 

_webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"wss://123.456.789.159"]]; 
_webSocket.delegate = self; 

NSLog(@"Opening Connection..."); 
[_webSocket open]; 

また、ポート番号を追加してみました。

_webSocket = [[SRWebSocket alloc] initWithURL:[NSURL  URLWithString:@"wss://123.456.789.159:9900"]]; 

また、http、https、wsで試しました。まだ何も。

理由は誰でも知っていますか?

答えて

0

WebSocketは、HTTPの上に生のソケットのような機能をもたらすためのプロトコルです。サーバーが公開しているソケットは、WebSocketプロトコルをサポートしていません。

iOSでrawソケットプログラミング用のより高いレベルのAPIが必要な場合は、CocoaAsyncSocketが適しています。

+0

ありがとうございました!私は間違いなくそのショットを与えるでしょう。 –

関連する問題