现在我在iOS上遇到STUN协议问题。 我在Github上下载了这个项目https://github.com/soulfly/STUN-iOS 但是,当我运行该项目时。它只显示日志
2015-06-19 15:55:08.245 STUN[4669:607] STUN server: stunserver.org
2015-06-19 15:55:08.247 STUN[4669:607] STUN Binding Request=<00010000 2112a442 ab8b1ef9 7347bf10 e98c817b>
2015-06-19 15:55:08.275 STUN[4669:607] STUN didSendDataWithTag=1002
我无法展示我需要的公共IP。
请给我解决问题的建议。非常感谢
答案 0 :(得分:0)
NSString *hostN = @"stunserver.org";
struct hostent* phot;
phot = gethostbyname(hostN.UTF8String);
if(phot) {
struct in_addr ip_addr;
memcpy(&ip_addr, phot->h_addr_list[0], 4);
char *ip = (char*)malloc(sizeof(char)*20);
inet_ntop(AF_INET, &ip_addr, ip, 20);
NSString *ipStr = [NSString stringWithUTF8String:ip];
free(ip);
NSLog(@"ip:%@", ipStr);
}
并包含一些头文件
#include <netdb.h>
#include <sys/socket.h>
#include <arpa/inet.h>
答案 1 :(得分:0)
我找到了为什么&#34; STUN-iOS项目&#34;我们跑步时无法显示公共IP。
原因:服务器stunsever.org不起作用。
解决方案:在文件tableA.Include(x => x.tableBChilds).Where(tableA => tableA.tableBChilds.Any(b => b.R== 1)).ToList();
中,您只需将代码STUNClient.h
更改为#define STUNServer @"stunserver.org"
即可。它工作正常。