vc++网络编程之基础篇

vc++网络编程之基础篇

ID:22609255

大小:57.50 KB

页数:11页

时间:2018-10-30

vc++网络编程之基础篇_第1页
vc++网络编程之基础篇_第2页
vc++网络编程之基础篇_第3页
vc++网络编程之基础篇_第4页
vc++网络编程之基础篇_第5页
资源描述:

《vc++网络编程之基础篇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、WindowsSocketsAPI简介VC++对网络编程的支持有socket支持,WinInet支持,MAPI和ISAPI支持等。其中,WindowsSocketsAPI是TCP/IP网络环境里,也是Internet上进行开发最为通用的API。最早美国加州大学Berkeley分校在UNIX下为TCP/IP协议开发了一个API,这个API就是著名的BerkeleySocket接口(套接字)。在桌面操作系统进入Windows时代后,仍然继承了Socket方法。在TCP/IP网络通信环境下,Socket数据传输是一种特殊的I/O

2、,它也相当于一种文件描述符,具有一个类似于打开文件的函数调用-socket()。可以这样理解:Socket实际上是一个通信端点,通过它,用户的Socket程序可以通过网络和其他的Socket应用程序通信。Socket存在于一个“通信域”(为描述一般的线程如何通过Socket进行通信而引入的一种抽象概念)里,并且与另一个域的Socket交换数据。Socket有三类。第一种是SOCK_STREAM(流式),提供面向连接的可靠的通信服务,比如telnet,http。第二种是SOCK_DGRAM(数据报),提供无连接不可靠的通信,比如

3、UDP。第三种是SOCK_RAW(原始),主要用于协议的开发和测试,支持通信底层操作,比如对IP和ICMP的直接访问。二、WindowsSocket机制分析2.1一些基本的Socket系统调用   主要的系统调用包括:socket()-创建Socket;bind()-将创建的Socket与本地端口绑定;connect()与accept()-建立Socket连接;listen()-服务器监听是否有连接请求;send()-数据的可控缓冲发送;recv()-可控缓冲接收;closesocket()-关闭Socket。2.2Windo

4、wsSocket的启动与终止  启动函数WSAStartup()建立与WindowsSocketsDLL的连接,终止函数WSAClearup()终止使用该DLL,这两个函数必须成对使用。2.3异步选择机制  Windows是一个非抢占式的操作系统,而不采取UNIX的阻塞机制。当一个通信事件产生时,操作系统要根据设置选择是否对该事件加以处理,WSAAsyncSelect()函数就是用来选择系统所要处理的相应事件。当Socket收到设定的网络事件中的一个时,会给程序窗口一个消息,这个消息里会指定产生网络事件的Socket,发生的事

5、件类型和错误码。2.4异步数据传输机制  WSAAsyncSelect()设定了Socket上的须响应通信事件后,每发生一个这样的事件就会产生一个WM_SOCKET消息传给窗口。而在窗口的回调函数中就应该添加相应的数据传输处理代码。三、WinSock基本定义:WinSock是MicrosoftWindowsSocket的简称,WinSock为软件开发人员提供一套Windows操作系统上的开放的、支持多种协议的网络编程接口,已成为在TCP/IP网络编程和Internet应用开发中通用的解决方案。WinSock对一些重要的数据类型

6、和结构做了如下定义。1、套接字的定义typedefunsignedintu_int;    typedefu_intSocket;2、基本数据类型的定义typedefunsignedcharu_char;typedefunsignedshortu_short;typedefunsignedintu_int;typedefunsignedlongu_long;3、网络地址的数据结构网络地址用无符号长整数unsignedlong表示。例如IP地址127.0.0.1可以表示为:#defineINADDR_LOOPBACK0x7f00

7、0001用inet_addr()函数可以将分16位IP地址转换为unsignedlong类型,其定义为:unsignedlonginet_addr(constcharFAR*cp)Cp为点分16位IP地址,如“192.1.8.84”。4、套接字地址结构sockaddr结构——通用Socket地址结构,其定义为:structsockaddr{u_shortsa_family;charsa_data[14];};其中sa_family为网络地址类型,随协议的不同而不同,一般为AF_INET,表示该socket在Internet域中

8、通信。sockaddr_in结构——专门针对Internet域的Socket地址结构,其定义为:structsockaddr_in{    shortsin_family;    u_shortsin_port;    structin_addrsin_addr;   cha

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。