我下载了一个源码,其中服务端一段代码如下:
CStringList g_lstIpList;
// 获取本地ip地址
SOCKET_GetLocalIpList(g_lstIpList);
// 如果没有ip地址,则返回
if( g_lstIpList.GetCount()<=0 )
return SM_INTERFACE_NO_IP;if (!g_pServer || !g_pServer->Listen(g_lstIpList,serverInfo.usPort) ){ LOG_Write(g_hLog,"创建会议管理对象失败\r\n");
// 启动监听端口失败
return SM_INTERFACE_LISTEN_FAILED;
}我想修改上面的代码,先用IPAddress获取公网的IP,下面是获取公网IP的代码:
char szHostName[128];
struct hostent * pHost;
int i;
LPCSTR IPAddress;
if(gethostname(szHostName,128)==0)
{
pHost = gethostbyname(szHostName);
for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )
{
IPAddress=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);
}
}然后传递给g_lstIpList,不知行不行?高手赐教!谢谢!!
CStringList g_lstIpList;
// 获取本地ip地址
SOCKET_GetLocalIpList(g_lstIpList);
// 如果没有ip地址,则返回
if( g_lstIpList.GetCount()<=0 )
return SM_INTERFACE_NO_IP;if (!g_pServer || !g_pServer->Listen(g_lstIpList,serverInfo.usPort) ){ LOG_Write(g_hLog,"创建会议管理对象失败\r\n");
// 启动监听端口失败
return SM_INTERFACE_LISTEN_FAILED;
}我想修改上面的代码,先用IPAddress获取公网的IP,下面是获取公网IP的代码:
char szHostName[128];
struct hostent * pHost;
int i;
LPCSTR IPAddress;
if(gethostname(szHostName,128)==0)
{
pHost = gethostbyname(szHostName);
for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )
{
IPAddress=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);
}
}然后传递给g_lstIpList,不知行不行?高手赐教!谢谢!!
解决方案 »
- 关于THREADINFO结构的 有高手没啊
- 窗体界面的获取,重绘问题
- 调试的时候遇到的错误 看不懂
- 哈哈,终于升星了,散分,并放出《代码大全》中文第二版
- 用dshow播放视频,如何可以调整亮度、对比度等参数。快过年了,多给点分。回帖就给分。
- VC中有这样的快捷键吗?在CPP 和HPP/H之间进行切换。
- 请问VC6.0技术内幕第5版的源代码在哪可下载?
- C++的风格与技巧(3) - 空类及其地址[转帖]
- error LNK2019:无法解析的外部符号
- DisconnectEx用法疑惑:只能用来主动关闭客户端连接?还是可以“客户端主动关闭连接”后DisconnectEx该客户端对应SOCKET?
- 关于优化SQL语句
- 关于数据在网络上的传输
struct hostent * pHost;
int i;
LPCSTR IPAddress;
if(gethostname(szHostName,128)==0)
{
pHost = gethostbyname(szHostName);
for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )
{
IPAddress=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);
}
}楼主这么容易就得到公网IP了?