《网络编程》实验指导书1 下载本文

内容发布更新时间 : 2024/5/1 6:48:43星期一 下面是文章的全部内容请认真阅读。

《网络协议及编程》实验指导书

实验一 获取本机主机名和ip地址

实验目的:编程获取本机主机名和IP地址。 实验要求:每人独立完成。 实验说明:

使用Vc++编程,首先要建立一个工程。工程类型有很多种,此处建立的工

程类型是win32

console application,这种类型的工程建立的是dos界面的程序。此外我们以后要

用到的工程

类型还有MFC appwizard(exe),这种类型的工程建立的是windos界面的程序。 工程建好后,开始编程序。源文件要通过“fileview”下的“source files”加

入,方法是

点右键,会弹出一个菜单,选“添加文件到目录”。 在使用socket编程时,每次都要把库ws2_32.lib加入,方法是点“工程”“设

置”“链接”。

实验参考步骤:

1. 新建工程。工程类型选“win32 console application”,输入工程名称,

选取工程存储位置,“下一步”,“一个空工程”,完成。

2. 选取“FileView”,点“Source Files”,按鼠标右键,选取“添加文件

到目录”,输入文件名,点“确定”。

3. 开始编程。

#include #include int main() {

hostent* pHostent = gethostbyname(hostname); if (pHostent==NULL) {

WORD wVersionRequested = MAKEWORD(1, 1); WSADATA wsaData;

if (WSAStartup(wVersionRequested, &wsaData)) { }

char hostname[256];

int res = gethostname(hostname, sizeof(hostname)); if (res != 0) { }

printf(\, hostname);

printf(\, WSAGetLastError()); return -1;

printf(\, WSAGetLastError()); return -1;

}

}

printf(\, WSAGetLastError()); return -1;

hostent& he = *pHostent; sockaddr_in sa;

for (int nAdapter=0; he.h_addr_list[nAdapter]; nAdapter++) { }

WSACleanup(); return 0;

memcpy ( &sa.sin_addr.s_addr, he.h_addr_list[nAdapter],he.h_length);

printf(\, inet_ntoa(sa.sin_addr)); // display as string

4. 5.

编译。在“工程“,”设置”,“链接”里,把ws2_32.lib 加入。 编译执行。完成。