2012-04-26 9 views
0

私はCocoaAsyncTaskを使用していて、ローカルホストに接続しようとしています。CocoaAsyncTaskは実デバイスに接続できません

if(![socket connectToHost:@"localhost" onPort:8080 error:nil]) { 
    NSLog(@"Error.."); 
} 
-(void)socket:(GCDAsyncSocket *)socket didConnectToHost:(NSString *)host: port:(uint16_t)port { 
    NSLog(@"Connected"); 
} 

:コードが ..私はシミュレータからそれを実行すると は、それが (私が提供echoサーバでそれをチェックしています)動作しますが、私は実際のデバイス上でそれを実行すると、何も起こりません何か案は? ありがとう!

+0

ステータス以下の値をチェックしてください8080? – Till

+0

ポート自体は問題ではありません。私は4444も使ってみました。現時点では文字列を送信しています。それはシミュレータから動作します。デバイスからではありません –

+0

したがって、サーバとクライアントの両方を非jailbrokenデバイスで実行していますか? – Till

答えて

2

ローカルにインストールされていないサーバーに接続しようとしている間は、そのアドレスを「localhost」として指定しています(ローカル=全く同じホストとインターフェイス)。 wikipedia entry on "localhost"を参照してください。

これは、Macのネットワーキングインターフェイスを使用するものとしてシミュレータから動作します。したがって、「localhost」は、クライアントと同様にサーバを実行するマシンを指します。

ホストマシンのローカルIPアドレス(Macなど)を指定する必要があります。通常、これは192.168.1.100や192.168.0.100のようなものですが、より正確にするためには、

192.168.xxx.xxx =クラスCルーティング不可能なアドレス

10.xxx.xxx.xxx =クラスルーティング不可能なアドレスの

XXX 一方スタンド0〜255の任意の値。

ローカルIPアドレスについては、システム環境設定を使用してください。 - >ネットワークパネル。あなたがポート上で提供しているiOSデバイス自体に期待しているどのようなサービス「IPアドレスxxx.xxx.xxx.xxx ...」ため

enter image description here

+0

私は試しました。どちらも動作しませんでした。私はwww.whatismyip.comから私のipを確認しました。 –

+0

あなたはローカル以外のアドレスを試しましたが、ファイアウォールを持つルータの背後にいる場合、あなたのMacに到達できるものではありません。ファイアウォールでそのポートを開くか、ローカルアドレスを使用してください。 – Till

+0

私はそれをtommorowのショットを与えるよ。 私は非ローカルアドレス(ローカルネットワークの外からテストするために)を使用したいのですが、www.whatismyip.com(またはipconfig ..)から入手したアドレスでテストし、ルータのポートを開く必要がありますか?それでおしまい? –