0

アプリで次のコードを使用していますが、 INADDR_ANY/0x7f000001(127.0.0.1)の代わりに192.168.0.1 (16 進形式)
のような IP アドレスを設定するとエラーが発生します。

BAction)createSocket:(id)sender {
CFSocketContext CTX = {0, "this is server", NULL, NULL, NULL};
 tcpServer = CFSocketCreate(NULL,0, 0, 0,kCFSocketAcceptCallBack, 0, &CTX);
if (tcpServer == NULL)
    NSLog(@"server isn't created");
else
    NSLog(@"sever is successfully created");
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(2048);
addr.sin_addr.s_addr = htonl(0x7f000001); 

NSData *address = [ NSData dataWithBytes: &addr length: sizeof(addr) ];
if (CFSocketSetAddress(tcpServer, (__bridge CFDataRef) address) != kCFSocketSuccess) {
    NSLog(@"socket address not set");
}
else
{
    NSLog(@"socket address is successfully added");
}


他の IP アドレスを追加したり、他の IP を使用するための制限を追加したりできますか? できればどうすればいいですか?
3台のiPhoneを相互に接続するために使用しているため、他のIPを使用したいと考えています。

4

1 に答える 1

0

ローカル IP アドレスが 192.168.0.1 ではありません。それがルーターのアドレスです。bind-address は、ローカル ホストの NIC の IP アドレス、INADDR_ANY、または 127.0.0.1 である必要があります。

于 2013-03-26T21:58:10.430 に答える