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