Window Socket 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866
使用WinSocket开发前需要了解的基础知识 1、什么是套接字(Socket) 2、套接字的服务方式和类型 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 使用WinSocket开发前需要了解的基础知识 1、什么是套接字(Socket) 2、套接字的服务方式和类型 3、如何构建WinSock应用程序框架 4、IP地址的表现形式 5. 开始编写一个TCP/IP 连接模型.
昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 Socket 协议的工作原理 Socket又称套接字,它是TCP/IP网络环境下应用程序与底层通信驱动程序之间运行的开发接口.它可以将应用程序与具体的TCP/IP隔离开.使得应用程序不需要了解TCP/IP的细节,就能够实现传输.
根据底层协议的不同,Socket开发接口可以提供 面向连接和无连接二种服务方式. 在Socket通信中,套接字分为3种类型. 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 Socket 的服务方式和类型 根据底层协议的不同,Socket开发接口可以提供 面向连接和无连接二种服务方式. 在Socket通信中,套接字分为3种类型. 1.流式套接字. SOCK_STREAM 流式套接字是面向连接的、提供双向、有序、无重复且无记录边界的数据流服务,适用于处理大量数据,可靠性高,但开销也大。 2.数据报式套接字SOCK_DGRAM 3.原始套接字 其中 SOCK_STREAM、SOCK_DGRAM 工作在传输层,SOCK_RAW 工作在网络层。
WinSock包含了两个主要的版本.即Socket1和winsock2.我们一般使用 2 在使用时,需要包含如下头文件和LIB文件 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 构建WinSocket应用程序框架 WinSock包含了两个主要的版本.即Socket1和winsock2.我们一般使用 2 在使用时,需要包含如下头文件和LIB文件 #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") 还需要初始化WinSocket Int WSAAPI WSAStartup(WORD wVersionRequested //版本号 ,LPWSADATA lpWSAData); WSAData结构用于存放返回的Socket数据
typedef struct WSAData { WORD wVersion; Socket dll期望用户使用的规范版本 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 typedef struct WSAData { WORD wVersion; Socket dll期望用户使用的规范版本 WORD wHighVersion; 可以支持的最高版本 //描述字符串 char szDescription[WSADESCRIPTION_LEN+1]; //状态字符串 char szSystemStatus[WSASYS_STATUS_LEN+1]; //套接字的最大编号(Winsock2或稍后的版本忽略了该字段) unsigned short iMaxSockets; unsigned short iMaxUdpDg; //忽略 char FAR * lpVendorInfo; //废弃 } WSADATA, FAR * LPWSADATA; //如果返回为0就表示成功. 常用错误 WSASYSNOTREADY //网络通信所依赖的网络子系统还没准备好 WSAVERNOTSUPPORTED //所需要的Win Socket Api未被当前的Win支持 WSAEINVAL 指定的版本不被该DLL支持
IP地址常用点分法来表示 比如192.168.0.169 即4个0-255的整数表示. 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 IP地址的表现形式 IP地址常用点分法来表示 比如192.168.0.169 即4个0-255的整数表示. 但是在计算机中不使用点分法来保存IP地址.这样会浪费存诸空间.而且不便于根据 IP地址和子网掩码来计算子网信息 所以在计算机中使用 无符号长整形数来存诸表示IP地址 1.网络字节顺序(NetWork Byte Order,NBO) 在网络传送中,IP地址被保存为32位的二进制数.在低位存储地址中保存数据的高位字节.这种存储顺序格式被称为网络字节顺序.数据按照32位的二进制数为一组进行传输.因为采用网络字节顺序,所以数据的传输顺序是由高到低的. 在VC中使用In_addr来保存IP地址. inet_addr 和 inet_ntoa 2.主机 顺序(Host Byte Order,HBO)两种格式. 不同的主机在对IP地址进行存储时使用的格式也不同,所以需要通过下列四个函数来实现主机和网络字节顺序的互转. H to n l() u_long 将主机字节顺序格式IP地址转换成为TCP/IP网络字节顺序 . htons 主机转网络 u_short 型 N to h l 网络转主机 u_long N to h s 网络转主机 short
主机流程 客户端流程 1.建立流式套接字 2.套接字:与本地地址绑定 2.将套接字与远程主机连接 3.通知TCP.服务器准备好连接 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 主机流程 客户端流程 1.建立流式套接字 2.套接字:与本地地址绑定 2.将套接字与远程主机连接 3.通知TCP.服务器准备好连接 3.在套接字上读/写数据 4.等待客户端的连接 4.关闭套接字,结束会话 5.建立连接 6.在套接字上读/写数据 7.关闭套接字 8.关闭最初的套接字,结束服务
<基础二(WIN32、MFC、网络编程、数据库)线上班>学员可见 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 课后练习:(无) <基础二(WIN32、MFC、网络编程、数据库)线上班>学员可见