4

Objective C は初めてで、UDP 経由で簡単なメッセージを送信する必要があります。サーバー部分はC#で実装されているため動作しています。

C# のサーバー コードは次のとおりです。

 var server = new UdpClient(8585);
 var groupEP = new IPEndPoint(IPAddress.Parse("192.168.0.120"),8585);
 byte[] bytes = server.Receive(ref groupEP);

c# のクライアント部分は次のとおりです。

   System.Net.Sockets.UdpClient client;     
client = new System.Net.Sockets.UdpClient("192.168.0.120",8585);    
client.Send(new byte[]{1,2,3,4},4);

目的 c で同じクライアント部分を実行するにはどうすればよいですか? このライブラリなど、インターネット上には多くのチュートリアルがあることを知っています。そのライブラリをプロジェクトにインポートすると、新しいオブジェクトをインスタンス化する方法がわかりません。私が試してみました:

 [[GCDAsyncUdpSocket alloc] initWithSocketQueue:... ??? I don't know how to initialize it.

クライアント部分を目標 c に複製する方法の簡単な例を誰かが示してくれれば幸いです。

4

4 に答える 4

6

ここから GCDAsyncUdpSocket をダウンロードします。次に、次のようにパケットを送信できます。

 GCDAsyncUdpSocket *udpSocket ; // create this first part as a global variable
 udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

 NSData *data = [ 
                   [NSString stringWithFormat:@"%Hello Wold" 
                    dataUsingEncoding:NSUTF8StringEncoding
                ];

[udpSocket sendData:data toHost:@"192.168.10.111" port:550 withTimeout:-1 tag:1];
于 2012-05-01T16:56:00.050 に答える
1

Apple はUDPEchoというサンプル プロジェクトを提供しています。これは Mac プロジェクトですが、iOS でも利用できる Core Foundation のクラスに主に依存しており、そこに含まれるレッスンは iOS にも同様に適用されるはずです。

于 2012-04-30T23:48:12.437 に答える
0

まず、iOS で利用できるネットワーク通信の基本的なタイプのいくつかを概説しているこの記事を読んでください。

NSStream特に、Apple には、ソケットとクラスを使用したネットワーク通信の例があります

通常の BSD ソケット API を使用できますが、VPN オンデマンドなどの特定の iOS ネットワーク機能では動作しないため、推奨されません。これが重要でない場合は、C でソケットを使用する方法の例をここで確認できます。

個人的な経験から言えば、C# の場合ほど簡単ではありません。

于 2012-04-30T23:42:02.717 に答える
0

モノタッチを使用して問題を解決することができました。私はC#で行うのと同じ方法でそれを行います:

 System.Net.Sockets.UdpClient client;
 client = new System.Net.Sockets.UdpClient("192.168.0.120",550);
 client.Send(new byte[]{1,2,3,4},4);

でもライセンス料は払いたくない。400ドルかかります。3行以上のコードが必要な場合は、それを考えたかもしれません。

于 2012-05-01T03:54:25.040 に答える