netstat -b 显示连接所涉及的程序:
从这里可以看到程序和连接间的关系。
二、windows Sockets 的使用:
1.使用Windows Sockets的API函数获得本机的IP地址
关键函数:gethostname()和gethostbyname(const char * name);
代码: /*
**copy right @ lenglei **
**Windows Sockets API 的基本调用步骤:
**1.调用WSAStartup(), 实现 Windows Sockets DLL的初始化 **2.使用 Windows Sockets API中的函数
**3.调用WSACleanup(),注销程序,释放资源
*/
#include
#pragma comment(lib,%using namespace std;
int main() {
WSADATA wsaData; char* hostName; struct in_addr addr;
//初始化windows Sockets
//WSAStartup调用成功返回0 if(0!=WSAStartup(MAKEWORD(2,2),&wsaData)){ cout<<\ return 1; }
//获取主机信息 char name[256]; hostent* remoteHost;
gethostname(name, sizeof(name)); remoteHost = gethostbyname(name); if (remoteHost != NULL){ int i = 0; while (remoteHost->h_addr_list[i] != 0){ addr.s_addr = *(u_long*)remoteHost->h_addr_list[i++]; cout << \ } }
//释放
WSACleanup();
system(\ return 0; }
2. 使用Windows Sockets的API函数获得给定域名的IP地址 关键函数:gethostbyname(const char * name); /*
**copy right @ lenglei **
**Windows Sockets API 的基本调用步骤:
**1.调用WSAStartup(), 实现 Windows Sockets DLL的初始化 **2.使用 Windows Sockets API中的函数
**3.调用WSACleanup(),注销程序,释放资源 */
#include
#pragma comment(lib,%using namespace std;
int main() {
WSADATA wsaData; char* hostName; struct in_addr addr;
//初始化windows Sockets
//WSAStartup调用成功返回0 if(0!=WSAStartup(MAKEWORD(2,2),&wsaData)){ cout<<\ return 1; }
//获取主机信息 string name;
hostent* remoteHost;
while (cin >> name){ remoteHost = gethostbyname(name.c_str()); if (remoteHost != NULL){ int i = 0; while (remoteHost->h_addr_list[i] != 0){ addr.s_addr = *(u_long*)remoteHost->h_addr_list[i++]; cout << \ } } }
//释放
WSACleanup();
system(\ return 0; }
实验结果:
【实验中出现问题及解决方法】
问题就是实验教材感觉有点过时,我用vs2013编的,里面有的东西用不了,不过我在微软官方论坛上找到了解决方案。
【思考问题】 个人感觉还是用python写网络程序比较方便,windows scokets 感觉好麻烦,不过c语言嘛,很底层的东西,效率很高啦 【实验体会】 实验比较有意思,对网络编程有了浓厚的兴趣,下一步打算更加深入的学习 成绩 优 良 中 及格 不及格 教师签名: 日期: