0

私は次のようにiPhoneアプリでUDP接続を設定しようとしています:

 struct sockaddr_in server_address;
 CFDataRef server_address_data;
  ....      


  memset(&server_address, 0, sizeof(server_address));
  server_address.sin_len = sizeof(server_address);
  server_address.sin_family = AF_INET;
  server_address.sin_port = htons(thePort);      
  inet_aton([theHost cStringUsingEncoding:[NSString UTF8String]], &server_address.sin_addr);
  // put server address into CFData
  server_address_data = CFDataCreate(NULL, (uint8_t *) &server_address, sizeof(server_address));
  // set timeout (ACK and RESULT packets) for socket
  ????

ここで、次の問題が発生します。変数theHostはTextFieldから取得され、NSString*タイプです。そこからIPアドレスを取得したいので、char*が必要なinet_atonを試してみます。(ARCを使用して)どのように変換しますか?「セレクターUTF8Stringの既知のクラスメソッドがない」ため、上記の試行は失敗します。また、受信時のソケットのタイムアウトを設定したいと思います。

4

3 に答える 3

2

-UTF8Stringはインスタンスメソッドであるため、を使用する必要があります。[theHost UTF8String]これは。を返しますchar *

于 2012-11-14T16:03:22.143 に答える
2

[NSString UTF8String]UTF-8でエンコードされた文字列を取得するために使用するだけです。

inet_aton([theHost UTF8String], &server_address.sin_addr);
于 2012-11-14T16:04:56.310 に答える
0

[NSString UTF8String]を作成しましたが、UTF8Stringは静的メソッドではないため、最初に文字列のインスタンスを作成する必要があります。その行を次のように置き換えることができます。

inet_aton([theHost cStringUsingEncoding:[@"String that you want" UTF8String]], &server_address.sin_addr);
于 2012-11-14T16:15:28.547 に答える