欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言网络编程快速入门.pdf

    • 资源ID:70010900       资源大小:244.46KB        全文页数:5页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言网络编程快速入门.pdf

    Wi n d o w s C语言网络编程快速入门 C 语言的学习,一般的方式是:先学 C,然后是C+,最好还要有汇编语言和微机原理基础,然后才是 V i s u a l C+。这样的方式,对学习者来说,要花费很 多时间和 精力。而在学校教学中,也就没有时间深入学习 Wi n d o ws 编程的实用技术了。其实,具有了 C语言基础后,再有一些基本的 C+类的概念,就可以直接学习 Wi n d o ws C编程了。i走近 Wi n d o w s C语言 很多语言都把显示一个“H e l l o,Wo r l d I ll 做为第一 个人门程序,C 语言的第一个程序是这样的:烈 m:l u d e s t d i o b m a i n 0 P n t f(”H e 1 l o。w o r l d!”):如果把ma m函数写成带参数的ma m函数,应该是 ti n c 1 u d e t d 0 b m a i n(i n t a r g e,c h a r a r g v 口)p n t f(”H e l l o。W o r l d!”):Wi n d o ws C 的第一个程序和这个程序在形式和原理 上都是一致的,只是有两点不同:1 主函数接收的形参不只是命令行中的字符串的个 数和字符串的首地址。2 C语言的很 多函数在 Wi n d o ws C中部可以继 续使用,但象 p r i n t f()屏幕显示等函数就不能继续使 用了。因为 Wi n d o ws 是 多任务操作系统,屏幕巳不再 为某一个应用程序所独有,Wi n d o ws C应用程序要显 示字符串,需要使用 Wi n d o ws 提供的AP I 函数,开 自 己的窗口。下面是一个最简单的,显示“He l l o,Wo r l d!”的 4 4 喇 再重 膏 砑 t Wi n d o ws C程序 _ 撰文 魏云华 m:l u d r d a _ IS b A P T E N T R Y w n M ai n(H I N S T A N C E h z n s t a n c e。H I N S T A N CE 咿r e 乜n。L P S ml p C d L i n e。r r t n O r d S h a w)M e s s a g e B o x(N U L L。”H e 1 l o,w o r l d l f f,”第个 n c lo w s c 程序”。懈 0 I(1 c 0 N A s r E R I s K);主函数的形参有四个:口 h i n s t a n c e:接收程序运行时当前实例的句柄;口 h p r i v I n s t a n c e:前一个实例的句柄;口 l p C md L i n e:程序命令行指针;口 n c md S h o w:一个用来指定窗 口显示方式的整数。这几个参数的使用我们会在深 人的学 习中介绍的。显示“He l l o,Wo r d!”字符串,我们使用了一个 Me s s a g e B o x函数,这个函数会在屏幕上显示一个对话 框,它的原型是:i n t Me s s a g e B o x(HWN D h Wn d,L P C T S T R i p T e x t,L P C TS TR l p C a p t i o n,UNI T u Ty p e)四个参数分别是:口 h Wn d:父窗口的句柄;口 l p T e x t:要显示字符串的指针;口 l p C a p t i o n:对话框标题字符串的指针;口u T y p e:显示在对话框上的小图标的类型。使用这个函数要包含 wi n d o ws h头文件。调试一下,怎么样?窗 口上弹出了一个“第一个 Wi n d o ws C程序”对 话框,上面有一行字:“H e l l o,Wo r l d!“。世界真的很美好啊!深入编程 口 在 C语言 中,函数的声明如果没有指明返 回值 类型,缺省值为 v o i d,这个程序的主函数就没有返回 维普资讯 http:/ 值。不过,在 Wi n d o ws 编程时,我们最好养成个好习 惯,指明函数的返回值类型,因为在 C+中,函数返回 值类型是不可以缺省的。而我们在 Wi n d o ws C编程 时,还是会用到 C+的一些概念,这样做,有利于以后 深 入地 学 习。规范一点的程序应该是这样的:n C 1 u d n d 0 1 n t A P I E N T R Y w1 n M a i n C H I N S T A N C E h I n s t a n c e。H I N S T A N C E t a n c e,L P S T R l p d c i n e,i n t n c 掘l S I c _ 。M e s s a g e B o x C N U L L,H e l l o,愀 nd I”,f-r i n d o w s c 程序”。喝 I I 卫 附Is f 日t z S I):r t ur n 0:这里,我们声明的类型为mt 型,并且返回一个值0,这样的函数就可以使用在复杂一点的函数调用中了。口 在这一小节中,我们有几处都提到了句柄 的概 念,句柄和指针的概念不同,它是作为操作系统内部索 引表中的一个值来使用的,这样可以防止应用程序直接 访问对象的内部结构,体现了 Wi n d o ws 资源管理的优 越性。譬如说,一个窗口打开之后,对应着内存中的一 个内存块,这个窗口所在的内存块地址往往会由操作系 统做动态的调整,但其句柄却不会随之变化。通过句柄 就可以访问这个窗口,所以在使用的时候,可以把它当 做指针一样看待。二,获取本地计算机的主机名和l P地址 和 C语言一样,函数是 Wi n d o ws C编程的最基本 的单位。不过,Wi n d o ws C主要使用 A P I 函数,而网络 编程则主要使用 Wi n s o c k提供的 AP I函数。W i n s o c k是 9 0年代初,为了方便网络编程 由 Mi c r o s o f t 联合了其他几家公司共同制定的一套 WI N D O WS 下的网络编程接口,它是通过 C语言的动态链接 库方式提供给用户及软件开发者的,主要由 wi n s o c k h 头文件和动态链接库 wi n s o c k d l l 组成,目前有两个版 本:Wi n s o c k 1 1 和 Wi n s o c k 2 0。在 W i n 3 2平台上,访 问众 多的基层 网络协议,Wi n s o c k是首选接 口。用 V i s u a l C+6 0 编译 Wi n d o ws C程序,使用 Wi n s o c k AP I 函数时,首先要把 ws o c k 3 2 1 i b添加到 它的库模块 中,否 则在链接 的时候会 出现“e r r o r 投稿信箱:t o u g a o c s d n n e t L NK2 0 0 1”错误。添加 ws o c k 3 2 1 i b 的具体步骤是:打开“工程”菜 单,选择“设置”,在弹出的“P r o j e c t s e t t i n g s”对话框 中,点击“l i n k”选项卡,然后在对象 库模块文本框 中添加“ws o c k 3 2 1 i b”。最简单的网络编程是获取本机的主机名和 I P地址,这个程序使用了 WS AS t a r t()、WS AC l e n a u p()、g e t h o s t n a me()、g e t h o s t b y n a me()四个 Wi n s o c k A P I 函数,这四个函数的功能和使用方法介绍如下:1 WS A S t a r t u p():【函数原型】i n t PASCAL FAR W SAS t a r t up(W ORD wV e r s i o n Re q u i r e d,L P WS ADATA l p WS ADa t a);【使用说明】每一个使用 wi n s o c k的应 用程序,都必 须进行 WS AS t a r t 函数调用,并且只有在调用成功之后才能使用 其它的 Wi n s o c k网络操作函数。wV e r s i o n R e q u i r e d:表示欲使用的w i n s o c k版本,这是一个 wO R D类型的整数,它的高位 字节定义的是次版本号,低位字节定义的是主版本号。L p WS A D a t a:是一个指向WS A D A T A 资料的指针。这个资料我们一般不使用。返回值:调用成功返 回0;否则,返 回出错信息。2 WS A C l e n a u p():【函数原型】mt P AS C A L F A R WS A C l e a n u p(v o i d);【使用说明】wms o c k使用后,要调用W S AC l e a n u p函数关闭网 络设备,以便释放其占用的资源。3 g e t h o s ma me()【函数原型】i n t P AS CAL FAR g e t ho s t n a me f c h a r F AR+n a me,i n t n a m e l e n);【使用说明】该函数可以获取本地主机的主机名,其中:n a me:用于指向所获取的主机名的缓 冲区的指针。Na me l e n:缓冲区的大小,以字节为 w w w c s d I I n e t m a g a z in e 4 5 维普资讯 http:/ 单位。返回值:若无错误,返回0;否则,返回错误代码。4 g e t h o s t b y n a me()【函数原型】s t r u c t h0 s t e n t FARPASCAL FAR g e t h o s t b y n a me(c o n s t c h a r F A R n a m e);【使用说明】该函数可以从主机名数据库中得到对应的“主机”。该 函数唯 一的 参数 n a m e 就 是前面 调用 函数 a e t h o s t n a me O 得到的主机名。若无错误,刚返回一个指 向 h o s t e n t 结构的批针,它可以标识一个“主机”列表。Ho s t e n t 结构定义如下:S t c t h O s te n t f o h a r F A R h _ n a m e;F A R F A R t L 五1 a s e s:s h o r t h a d d ,e:d F A R F A R口 h a d d r-1 i s t;)其 中:hn a me:主机名地址(P C)。ha l i a s e s:一个由主机备用名组成的空终止数组。h _ a d d r t y p e:返回地址的类型,对于 wms o c k,这个 域总是P F _ I NE T。hl e n t h:每个地址的长度(字节数),对应于 P F I N E T域应该为4。h _ a d d r_E s t:应该以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的。其中,h _ a d d r _ l i s t O 存放的就是本地主机的 4 个字 节的I P地址,即:h a d d r _ l i s t O O h a d d r _ l i s t O 1 h _ a d d r _ E s t 0 2 h _ a d d r i s t 0 3 一个简单的用消息框显示主机名和I P地址的源程序 如下:硝 c 1 u d e n s O c k i n t W S A _r e t ur n;0 A W 0a t a:H O S T E NT h o s t e n t r y;c h a r h o s t 2 S 6 ;c h a r h o s t _ a d d s s 2 5 6 :n t A P I E N T R Y w i a 1 n(H I N S T A N C E h I n s t a n c e。H E N S T A N C E 4 6 倒 一 再 重 -撕 一 h P r e v l n s t a n c e,f ,i f(w S A _ r e t u r n=0)t h o s t e n t ,2 S 6);f 0 1 o 6 t 咖!=国 f 时 O 。s c a d d r e s s,d削 ,O 擞舯臼 耐 Hs t 嘲 阻瑚D f f),t 舯 曲 耐 1 话t 嘲 I柚x 0 D f f)。O 擞舯臼 耐】话t 嘲 暖I触目 f f)。O 擞舯臼 s t 嘲 疆I 固 c 嘲D F );M e S s a Q e m(N U L L。h o st e s s,h o s t _ min e t M B _ O K);)W S A C I e a n u p O;r e t ur n 0;深入编程 口 前面显示I P 地址的时候,我们使用的是消息框,规 范一点的编程应该使用对话框,如何编辑一个对话框,很 多书中都有介绍,编辑的对话框可参考图 5 的运行界面。头文件 G e t I P h 如下:B 0 O L A E h m H O S t n a m e _ i p D l g P r o(h D l g,U l N T m e s s a g e。W P A R A M w P a r a m。L P A R A M 1 P a r 狮):这个程序只使用了一个对话框过程,一般把这个过 程的声明放在头文件中。口 源程序 Ge t I P c:别 n c l u d e n s o c I 2 n c l u d e G e t _ I P h”私 u r e h l ,趔 ,头文件在创建资蔫|袭铰链箍)“嘲肿扪_I:自 姓成,H O S T E N T h o s t e n t r y;c h a rh o s t j t e 2 s 6 ;c h a r h o s t _ a d d r e s s 2 S 6】:1 n t A P I E N T R Y w i n M a i n(H I N S T A N C E h z n s t a n c e。H I N S T A N C E 蜩琏志n。I p 陬 1 1 h d f 艳,i n t n(两蠡I f 计 肿 l m=o)毛 维普资讯 http:/ g e t h o s t n a m e(h o s t _ n a m e。2 S 6):i f(h o s t _ e n t r y!=O)f 惜p r f n t f o 岱t r毯s,删 削 附 。慨 t 舯b 硼】话t 隧 l茜 c-。赋 蟹 r 瞳,础I I:3 设 嘲 踟mF f)。瓯舯 h 碰:S t 嘲 阅 mF f),呔 蜘 出:】豉咖。8 阳d】0 f );)A C l e a n u p O;O 盲 a 1 O g B O x(h I n s t a n c e,”D I AL O G 1”,N U L L。(D L G P R O C)H 口 酮黼j p D 1 g P r o):)r e t l,l r r l O:B O O t A P I E N T R Y H o s t n a m e _ i p o l g P r O(H N D h o l g。U I N T m e s s a g e。嘲 R 州 w P a r a l ,L P A R Mt 1 P a r a m)毛 s t c h(m e s s a g e)f c a seI _ I NI T DI A L O G:嘞 盯I c T l1 日;case WM_C0M MAN D:i f(L O W O R D(w P a r a m)=I D O K)毛 蚓驴强孵瞅 t D 1 g,i i)c _ B)m,h o s s k e);S et o l gT t e m Te x t I h o l g,I D C E D I T2,h o s t _ a d d r e s s);S e t D 1 g I t e m T e x t(h o l g,I D O N C E L,”确定”);i f(L O W O R D(W P a r a m)=I D C A N C E L)B c b i a l o g l 啁g,;三利用 V i s u a l C+6 0 绾译 Wi n d o w s C程序 利用 V i s u a l C+6 0 编译 Wi n d o ws C程序一般要 经过以下四个步骤:新建项 目、添加代码、添加资源和 编译链接。下面我们简单地说明上面所介绍的获取本机 的主机名和 I P 地址程序的编译过程:一 新建项目 1 启动 Mi c r o s o f t V i s u a l C+,然后在【文件】菜 单中先择【新建】命令,弹出如图 1 所示的【新建】对 话框:投稿信箱:t o u g a o c s d n n e t 图 1 2 在【新建】对话框 中,系统打开的是默认的【工 程】选项卡,【工程】选项卡左侧的列表框中有多种建立 工程的方式,我们选中“Wi n 3 2 A p p l i c a t i o n”选项。3 在【位置】文本框中输入新建工程的路径(例如:F:),在【工程】文本框 中输入工程名称(例如:G e tI P)。4 选中【平台】列表框 中的 Wi n 3 2 复选框,然 后 单 击【确 定】按 钮。5 在随后的对话框 中,都选择默认设置,完成 后,进入图 2所示界面:图 2 二 添加代码 在Vi s u a l C+6 0 中,源代码一般存放在源代码文 件和头文件中,往项 目中添加源代码是非常方便的,为 项 目新建一个源代码文件一般要按下述方法操作:1 选择【工程】l【添加工程】l【新建】选项,弹 出图 3(见下页)所示【新建】对话框。2 在对话框的【文件】选项卡中,左侧的列表框选中 “C+S O l j r。e F n e”选项,右侧选中【添加工程】复选框,并在【文件】文本框中输入源文件名(例如:G e t 一 C)。一 一一 维普资讯 http:/ 维普资讯 http:/

    注意事项

    本文(C语言网络编程快速入门.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开