2013-03-26 4 views
0

Я использую следующий код в моем приложении
, но я получаю сообщение об ошибке, когда я устанавливаю IP-адрес, как 192.168.0.1 (в шестнадцатеричном виде)
вместо INADDR_ANY/0x7f000001 (127.0.0.1).Только INADDR_ANY или 0x7f000001 работает, как установить любой другой 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? Если можно, то как?
Я хотел бы использовать другой ip, потому что я использую три iphone для соединения друг с другом.

ответ

0

Ваш локальный IP-адрес не является 192.168.0.1. Это ваш адрес маршрутизатора. Адрес привязки должен быть IP-адресом сетевого адаптера на локальном хосте, или INADDR_ANY, или 127.0.0.1.

+0

Итак, если у меня все устройства имеют одинаковый IP-адрес, например 127.0.0.1/INADDR_ANY, в этом состоянии я могу отличить устройство, используя только адрес PORT? – abhi1989

 Смежные вопросы

  • Нет связанных вопросов^_^