VC++网络编程 1 本机网络编程

简介: VC++网络编程 1 本机网络编程

1 本机网络信息编程

1.1获取本机计算机名称和IP

1.1.1 gethostname函数

作用:检索本地计算机的标准名称

函数声明:

int gethostname(char*name,int namelen);

参数介绍:

  • name:指向接收本地主机名的缓冲区指针
  • namelen name所指缓冲区长度 单位字节
  • 返回值 0:没有错误 ;其它:SOCKET_ERROR 可使用WSAGetLastError来检出特定的错误码;

示例:

char name[128];
if(gethostname(name,128)==0)
{
printf("%s",name);
}

1.1.2 gethostbyname函数

作用:从主机数据库中检索出与主机名对应的主机信息

函数声明:

hostent *gethostbyname(const char*name);

参数介绍:

  • name本地计算机名称 可用gethostname获得
  • 返回值 如果没有错误则返回hostnet结构的指针,出现出错返回空指针,可使用WSAGetLastError来检出特定的错误码,
    hostnet结构体定义
typeder struct hostnet{
char*h_name;        //主机的正式名称
char** h_aliases;   //指向以NULL结尾的主机别名数组
short h_addrtype;   //返回地址类型
short h_length;     //ip地址的长度
char ** h_addr_list;//用来保存多个ip地址
}HOSTENT,*PHOSTENT,*LPHOSTENT;

实例

char szHostName[128];
  char szT[20];
  if (gethostname(szHostName, 128) == 0)
  {
    // Get host adresses
    struct hostent * pHost;
    int i;
    pHost = gethostbyname(szHostName);
    for (i = 0; pHost != NULL && pHost->h_addr_list[i] != NULL; i++)
    {
      char str[100];
      char addr[20];
      int j;
      LPCSTR psz = inet_ntoa(*(struct in_addr *)pHost->h_addr_list[i]);
      printf("%s",psz);
    }
  }

1.1.3 inet_ntoa函数

作用:讲一个十进制的网络字节序转为点分十进制IP格式的字符串

声明:

char* inet_ntoa(struct in_addr in);

参数介绍:

  • 参数in:表示Internet主机地址的结构,
  • 返回值:如果函数正确,就返回一个字符指针,指向一块存储着点分十进制格式IP地址的静态缓冲区,如果错误则返回NULL
    实例参考上一个

1.2获取本机子网IP地址和子网掩码

子网掩码又叫做网络掩码、地址掩码、子网络遮罩,用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,必须与ip地址结合使用,

子网掩码的作用 将某个IP地址划分成网络地址和主机地址两部分

GetAdaptersInfo函数

声明

ULONG GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo,PULONG pOutBufLen);

参数介绍:

  • pAdapterInfo指向接收IP适配器信息结构链表的缓冲区指针(指向的是一个链表节点的指针)
  • pOutBufLen指向ulong变量的指针,该变量指定pAdapterInfo参数指向的缓冲区大小
目录
相关文章
|
2月前
|
移动开发 网络协议 NoSQL
不为人知的网络编程(十七):冰山之下,一次网络请求背后的技术秘密
本文将抛弃千篇一律的计网知识理论,从现实的互联网技术实践角度,一步步为你分享一次网络请求背后的技术秘密。
54 0
|
3月前
|
存储 机器人 Linux
Netty(二)-服务端网络编程常见网络IO模型讲解
Netty(二)-服务端网络编程常见网络IO模型讲解
|
3月前
|
网络协议 Python
告别网络编程迷雾!Python Socket编程基础与实战,让你秒变网络达人!
在网络编程的世界里,Socket编程是连接数据与服务的关键桥梁。对于初学者,这往往是最棘手的部分。本文将用Python带你轻松入门Socket编程,从创建TCP服务器与客户端的基础搭建,到处理并发连接的实战技巧,逐步揭开网络编程的神秘面纱。通过具体的代码示例,我们将掌握Socket的基本概念与操作,让你成为网络编程的高手。无论是简单的数据传输还是复杂的并发处理,Python都能助你一臂之力。希望这篇文章成为你网络编程旅程的良好开端。
63 3
|
2月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
20 0
|
3月前
|
网络协议 安全 网络安全
C语言 网络编程(四)常见网络模型
这段内容介绍了目前被广泛接受的三种网络模型:OSI七层模型、TCP五层模型以及TCP/IP四层模型,并简述了多个网络协议的功能与特性,包括HTTP、HTTPS、FTP、DNS、SMTP、TCP、UDP、IP、ICMP、ARP、RARP及SSH协议等,同时提到了ssh的免费开源实现openssh及其在Linux系统中的应用。
|
4月前
|
安全 Java 网络安全
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
44 2
|
4月前
|
网络协议 Java
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
这篇文章全面讲解了基于Socket的TCP网络编程,包括Socket基本概念、TCP编程步骤、客户端和服务端的通信过程,并通过具体代码示例展示了客户端与服务端之间的数据通信。同时,还提供了多个案例分析,如客户端发送信息给服务端、客户端发送文件给服务端以及服务端保存文件并返回确认信息给客户端的场景。
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
|
4月前
|
网络协议 Java 关系型数据库
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
87 2
|
4月前
|
开发者 图形学 API
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
142 0
|
5月前
|
缓存 网络协议 Java
(六)网络编程之化身一个请求感受浏览器输入URL后奇妙的网络之旅!
在浏览器上输入一个URL后发生了什么? 这也是面试中老生常谈的话题,包括网上也有大量关于这块的内容。
143 2