程序编译没有错误和警告,程序代码如下: WSADATA wsaData;
char name[255];
CString ip;
PHOSTENT hostinfo;
memset(name,0,sizeof name);
if (WSAStartup (MAKEWORD(1,1), &wsaData) != 0)
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
AfxMessageBox(name);//name里是本机名
AfxMessageBox(ip); //ip中是本机IP两个AfxMessageBox打印出来都是空值,奇怪。怎么解决,谢谢大家!
char name[255];
CString ip;
PHOSTENT hostinfo;
memset(name,0,sizeof name);
if (WSAStartup (MAKEWORD(1,1), &wsaData) != 0)
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
AfxMessageBox(name);//name里是本机名
AfxMessageBox(ip); //ip中是本机IP两个AfxMessageBox打印出来都是空值,奇怪。怎么解决,谢谢大家!
解决方案 »
- VS2010“未声明的标识符”
- 调用外部LIB库时发error LNK2019
- CRectTracker拉伸移动时,怎么实时获取到他的虚框大小呢
- 求VC POST 上传文件方法--》我的代码上传没反映,请高手帮忙
- 我这样给动态创建的控件添加消息影射对吗?
- 恳 求 !MFC Windows 程序设计(第2版)免费 电子版的下载???
- 请教:对话框中的某一控件是否在任何情况条件,都不需要为此控件建一个类
- 从表单中获得信息添加到acess数据库中
- 请高手指点 急
- 加密软件封掉了网口、U口,怎么破开
- Serialize(CArchive &ar)保存数据时出错“error C2678: binary '<<' : no operator defined”??谁帮我看看。。。
- sdk里面的例子 怎么运行?
if(gethostname(name, sizeof(name)) == SOCKET_ERROR)
#pragma hdrstop#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
{
hostent *p;
char s[128];
char *p2; //Get the computer name
gethostname(s, 128);
p = gethostbyname(s);
Memo1->Lines->Add(p->h_name); //Get the IpAddress
p2 = inet_ntoa(*((in_addr *)p->h_addr));
Memo1->Lines->Add(p2);}
//---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender)
{
WORD wVersionRequested;
WSADATA wsaData; //Start up WinSock
wVersionRequested = MAKEWORD(1, 1);
WSAStartup(wVersionRequested, &wsaData);}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
WSACleanup();}
//---------------------------------------------------------------------------
if (WSAStartup (MAKEWORD(1,1), &wsaData) == 0) 就好了。