西北工业大学网络编程技术重点.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
说明:本人为西工大计算机学院本科生,这些内容均为本人总结,考试后证明内容还算全面,整理时间为2012.6 一、Socket 定义、参数 Socket是通信双方之间的纽带,Socket可绑定网络应用程序、建立一次连接,并对连接进行唯一标识。Socket提供了一个通信接口,应用程序在网络上发送、接收的信息都通过这个接口来实现。Socket和文件句柄一样,是操作系统的资源。 SOCKET socket ( int af, //地址族 int type, //套接字类型 int protocol //特定的协议 ); 二、Winsock常用函数、辅助函数 Windows Sockets的初始化和终止WSAStartup() ,WSACleanup() 创建和释放套接字函数socket(),closesocket() 绑定套接字和地址结构bind(),listen(),accept(),connect() ,sockaddr ,sockaddr_in ,in_addr 发送、接收数据send()、sendto(),recv()、recvfrom() 错误处理函数WSAGetLastError() 其他辅助函数htons(),htonl(),ntohs(),ntohl(); ,inet_addr(),inet_ntoa(),gethostbyname(),gethostbyaddr(),getservbyname() 三、数据结构(维护哪些数据) 1、WSADATA结构用来保存WSAStartup()返回的初始化信息 struct WSAData {   WORD wVersion;   WORD wHighVersion;   char szDescription[WSADESCRIPTION_LEN+1];   char szSystemStatus[WSASYSSTATUS_LEN+1];   unsigned short iMaxSockets;   unsigned short iMaxUdpDg;   char *lpVendorInfo; }; 2、sockaddr结构体表示通用的Winsock地址结构,针对各种通信域的套接字,存储它们的地址信息 struct sockaddr { u_short sa_family;// 地址族:与socket()的第一个参数相同含义 char sa_data[14];// 协议地址,内容因具体协议而不同 }; 3、sockaddr_in结构体指定Internet通信域的地址结构 struct sockaddr_in { short sin_family;// 必须为AF_INET u_short sin_port;// 端口 struct in_addr sin_addr;// IP地址 char sin_zero[8]; }; 四、基于TCP协议的Socket编程模型 五、C/S端基本思路 服务器程序需执行: 初始化套接字接口,调用套接字动态链接库。 创建套接字并将其与本机网络地址结构绑定。 让程序处于监听状态,监听客户机的连接请求。 若有连接请求,则处理并建立连接;若未有连接请求,则阻塞并等待连接请求。 接收或发送数据。 关闭套接字。 注销套接字接口,释放套接字动态链接库所占用资源。 客户机程序需执行: 初始化套接字接口,调用套接字动态链接库。 创建套接字。 向服务器发送连接请求。 接收或发送数据。 关闭套接字。 注销套接字接口,释放套接字动态链接库所占用资源。 六、基于UDP协议的Socket编程模型(两种) 模型(一)的特点: 应用程序双份是对等的。使用数据报套接字通信时都经过6个阶段: 双方必须确切地知道对方的网络地址,且将约定好的自己的网络地址绑定到自己的套接字上。 每次发送或接收数据报时,所使用的sendto()和recvfrom()中要包括对方的网络地址信息。 recvfrom()在没有收到数据前,默认情况下会阻塞,程序不向下执行。 模型(二)的特点: 1、应用程序双份是不对等的。服务器要先行启动,处于被动的等待访问状态;客户机则可随时主动请求访问服务器。 完成一次通信时服务器要经过6个阶段:而客户机不需要绑定套接字。 服务器将套接字绑定到周知的端口或指定的端口,且客户机必须确切地知道服务器端套接字使用的网络地址。 客户机套接字使用动态分配的自由端口,不需要进行绑定。服务器事先不必知道客户机套接字使用的网络地址。 客户机必须先发送数据报,服务器收到后才能知道客户机的地址,才能给客户机回送数据报。 七、多线程,阻塞,非阻塞模式优缺点 1、阻塞模式: 优点:1、I/O操作工作情况确定,包括调用、等待和返回三个阶

文档评论(0)

jkf4rty7 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档