预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

WindowsSocket网络编程 一、WindowsSocket的由来 加利福尼亚大学伯克利分校为UNIX系统开发出了伯克利套接字(BSDsocket),在此基础上扩展形成了windows套接字。 WindowsSocket规范是一套开放的、支持多协议的Windows下的网络编程接口,它规范了Internet协议族(IPS,一般为TCP/IP)的API使用. 针对多样的网络协议,WindowsSocket统一了操作,简化了编程,使两个进程之间实现连接、通信。 二、windowssocket的版本 WindowsSocket规范主要有两种版本即1.1和2.0版。主要区别:1.1版本只支持TCP/IP协议,2.0版本可以支持多协议 三、编程时的加载事项 •需要包含头文件Winsock2.h,需要使用库ws2_32.lib,包含办法可以用语句来告诉编译时调用该库 #pragmacomment(lib,”ws2_32.lib”); 如果使用VisualC++6.0,可以通过“工程”>“设置”>“工程设置”>“链接”>“对象/库模块”中加入“ws2_32.lib” •WinSock是TCP/IP编程最低级的WindowsAPI,其代码的一部分位于Winsock32.dll中,另一部分位于Windows核心,使用WindowsAPI可以编写Internet服务器和客户端程序。应用程序调用WindowsSocket的API实现相互之间的通信(应用程序与WindowsSocket关系图) 应用程序1套接字有三种类型socket基本概念端口号字节序网络字节序(NBO,NetworkByteOrder) 使用统一的字节顺序,避免兼容性问题 主机字节序(HBO,HostByteOrder) 不同的机器HBO是不一样的,这与CPU的设计有关 Motorola68K系列,HBO与NBO是一致的 IntelX86系列,HBO与NBO不一致 字节排序函数 htonl4字节主机字节序转换为网络字节序 ntohl4字节网络字节序转换为主机字节序 htons2字节主机字节序转换为网络字节序 ntohs2字节网络字节序转换为主机字节序 阻塞通信与非阻塞通信返回返回注意事项:为了支持Windows的消息驱动机制,WinSock和BSD套接口相比有以下一些扩充:Winsock的启动和终止 应用程序在使用WindowsSocketsDll之前必须先调用启动函数WSAStartup()。该函数的功能有两个:一是由应用程序指定所要求的WindowsSocketsDll版本;二是获得系统WindowsSocketsDll的一些细节。 调用终止函数WSACleanup()来终止WindowsSocketsDLL。 Socket编程过程实例:编写即时聊天工具实验步骤(1)实验步骤(2)实验步骤(3)注意事项(1)注意事项(2)注意事项(3)网络消息backbackback基于TCP的SOCKET编程客户端 1:创建套接字(socket) 2:向服务器发出连接请求(connect) 3:和服务器进行通信(send/recv) 4:关闭套接字基于UDP的socket编程客户端 1.创建套接字(socket) 2.向服务器发送数据(sendto) 3.关闭套接字Thankyou!