文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++Windows下C语言网络编程快速入门
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
热点TOP10
·进程和线程编程
·C语言编程易犯毛病集合
·打字游戏
·Awk 基础入门:Awk 实例编程
·asp.net中调用javascript函数实现多功能日期控件示例
·C语言编程常见问题解答之常用函数的包含文件(1)
·C# GridView 排序及分页
·C #中的几个线程同步对象方法
·无废话C#设计模式之三:Abstract Factory
·C# DataGridView隔行显示不同的颜色

Windows下C语言网络编程快速入门

日期:2007年10月30日 作者: 查看:[大字体 中字体 小字体]



  在Win32平台上,访问众多的基层网络协议,Winsock是首选接口。

  用Visual C++6.0编译Windows C程序,使用Winsock API函数时,首先要把wsock32.lib添加到它的库模块中,否刚在链接的时候,会出现“error LNK2001”错误。添加wsock32.lib的具体步骤是:打开工程菜单,选择设置,在弹出的Project settings对话框中,点击link选项卡,然后在对象/库模块文本框中添加wsock32.lib。

  最简单的网络编程是获取本机的主机名和IP地址,这个程序使用了WSAStart()、WSAClenaup()、gethostname()、gethostbyname()四个winsock API函数,这四个函数的功能和使用方法介绍如下:

  1. WSAStartup():

  【函数原型】

int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);
  【使用说明】

  每一个使用winsock的应用程序,都必须进行WSAStart函数调用,并且只有在调用成功之后才能使用其它的winsock网络操作函数。

  WVersionRequired:<输入>表示欲使用的Winsock版本,这是一个WORD类型的整数,它的高位字节定义的是次版本号,低位字节定义的是主版本号。

  LpWSAData:<输出>是一个指向WSADATA资料的指针。这个资料我们一般不使用。

  返回值:调用成功返回0;否则,返回出错信息。

  2. WSAClenaup():

  【函数原型】

int PASCAL FAR WSACleanup(void);
  【使用说明】

  winsock使用后,要调用WSACleanup函数关闭网络设备,以便释放其占用的资源。

  3.gethostname()

  【函数原型】

int PASCAL FAR gethostname (char FAR * name, int namelen);
  【使用说明】

  该函数可以获取本地主机的主机名,其中:

  name:<输出>用于指向所获取的主机名的缓冲区的指针。

  Namelen:<输入>缓冲区的大小,以字节为单位。

  返回值:若无错误,返回0;否则,返回错误代吗。

  4.gethostbyname()

  【函数原型】

struct hostent FAR * PASCAL FAR gethostbyname(const char FAR * name);
  【使用说明】

  该函数可以从主机名数据库中得到对应的“主机”。

  该函数唯一的参数name就是前面调用函数gethostname()得到的主机名。若无错误,刚返回一个指向hostent结构的批针,它可以标识一个“主机”列表。

  Hostent结构定义如下:

Struct hostent
{
char FAR * h_name;
char FAR FAR ** h_aliases;
short h_addrtype;
char FAR FAR ** h_addr_list;
}
  其中:

  h_name:<输入>主机名地址(PC)。
  h_aliases:一个由主机备用名组成的空中止数组。
  H_addrtype:返回地址的类型,对于Winsock,这个域总是PF_INET。
  H_lenth:每个地址的长度(字节数),对应于PF_INET域应该为4。
  H_addr_list:应该以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的。

  其中,h_addr_list[0]存放的就是本地主机的4个字节的IP地址,即:

  h_addr_list[0][0].h_addr_list[0][1].h_addr_list[0][2].h_addr_list[0][3]

  一个简单的用消息框显示主机名和IP地址的源程序如下:

#include<winsock.h>

int WSA_return;
WSADATA WSAData;

HOSTENT *host_entry;
char host_name[256];
char host_address[256];

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
 WSA_return=WSAStartup(0x0101,&WSAData);

 if(WSA_return==0)
 {
  gethostname(host_name,256);
  host_entry=gethostbyname(host_name);
  if(host_entry!=0)
  {
   wsprintf(host_address,"%d.%d.%d.%d",
    (host_entry->h_addr_list[0][0]&0x00ff),

上一页 [1] [2] [3] [4] 下一页 




上一篇:水滴石穿C语言之指针综合谈

下一篇:水滴石穿C语言之typedef的问题

相关文章:
·请问网络路由器的接口种类有哪些?
·最详细的黑客入门法则
·Windows Vista震撼1600X1200高清壁纸
·经典爱情语言
·Windows系统漏洞修复软件大比拼
·从零开始学黑客:网络黑客新手入门指南
·鲜为人知的Windows XP优化
·如何让Windows桌面图标任我排
·注册表已经损坏并导致WindowsXP无法启动,应该如何恢复
·微软.NET战略延深 蓄谋打造下一代网络门户
相关软件:
·网络常见问题与故障1000例
·Vgo网络电视V3.0
·C语言程序设计
·Windows主题70合一典藏版
·盈速通网络加速器V1.2
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·2007网络安全黄皮书V1.0.0
·Photoshop 入门教程
·CorelDraw12 入门与实例(图文教程 菜鸟先飞系列教材)
·保证你快速致富的七个步骤

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot