0

いくつかのチュートリアルを読んだ後、私は次のコードを思いつきました:(有名なGCDAsyncUdpSocketクラスを使用して)

NSError *error = nil;

if (![mSocket connectToHost:@"192.168.1.111" onPort:9050 error:&error])
{
    NSLog(@"Error connecting: %@", [error description]);
}

usleep(100000);

NSString* str = @"teststring";
[mSocket sendData:[str dataUsingEncoding:NSUTF8StringEncoding] toHost:@"192.168.1.111" port:9050 withTimeout:-1 tag:1];

このコードをiPhoneで実行すると、すべてが正常に見えます(エラーはありません)。しかし、パケットが私のPCに届くことはありません。

私のPCでは、UDPリスナーが(Wiresharkと一緒に)実行されています。両方のデバイスは、同じサブネットと同様のIPを持つ同じネットワーク上にあります(私のPCは192.168.1.111です)。私は何か間違ったことをしていますか?うまくいけば、単純な間違い?

4

1 に答える 1

1

メソッド

sendData:toHost:port:withTimeout:tag:
sendData:toAddress:withTimeout:tag:

ソケットが接続されていない状態でメッセージを送信するためのものであるため、を呼び出さないでくださいconnectToHost。接続されたホストの場合、次を使用できます

sendData:withTimeout:tag:
于 2012-09-28T17:38:39.423 に答える