网站大量收购独家精品文档,联系QQ:2885784924

第五节SOCKET编程基础-UDP.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五节SOCKET编程基础-UDP

LOGO 计算机网络实验 计算机与网络中心 第五节 SOCKET编程基础-UDP 实验内容 SOCKET(套接字) 1 SOCKET-UDP流程图 2 服务器(Server)端Socket 3 客户(Client)端Socket 4 SOCKET(套接字) SOCKET(套接字):根据RFC793的定义,端口号拼接到IP地址就构成了套接字。 SOCKET将复杂的TCP/IP协议族隐藏在SOCKET接口的背后,通过调用socket函数去传输数据 TCP/IP提供三种类型的套接字: 流式套接字(SOCK_STREAM)基于TCP协议。 数据报式套接字(SOCK_DGRAM)基于UDP协议。 原始套接字(SOCK_RAW)创建自定义的IP数据包首部。 SOCKET-UDP流程图 服务器(Server) 一、启动Winsock(WSAStartup函数) 格式: int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData); 参数: wVersionRequested:用来指定Winsock库的版本 lpWSAData:返回值,指向WSADATA结构的指针 终止Winsock(WSACleanup函数) 格式: void WSACleanup(void); 服务器(Server) 二、创建套接字(socket函数) 格式: SOCKET socket(int af,int type,int protocol); 参数: af:指定地址族,对于Windows来说,它只支持AF_INET type:指定socket类型(SOCK_STREAM,SOCK_DGRAM或SOCK_RAW ) protocol:说明该套接字使用的特定协议,默认的连接模式设为0 **当Socket创建失败时,该Socket应该等于INVALID_SOCKET 服务器(Server) 三、绑定本地地址(bind函数) 格式: int bind(SOCKET s,const struct sockaddr FAR *name,int namelen); 参数: s:指定要绑定的套接字 name:指定该套接字的本地地址信息,Windows Socket只能使用TCP/IP协议的地址结构sockaddr_in; namelen:指定该地址结构的长度 服务器(Server) sockaddr_in地址结构: struct sockaddr_in{ short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; sin_family:表示地址族,这里须为AF_INET; sin_port:指定将要分配给套接字的端口; sin_addr:给出套接字的主机IP地址; sin_zero:只是一个填充数 服务器(Server) **Attention:在指定将要分配给套接字的端口时需要注意在网络中传输一个二进制数的次序(网络字节序)与机器中存储二进制数的次序是不同的,所以在传输数据前,必须将二进制数转换成适合在网络中传输的次序。利用函数htons()或者htonl()。 **Attention:我们想要表示不确定地址,或“所有地址”、“任意地址” 即0.0.0.0时使用INADDR_ANY。 服务器(Server) 四、无连接的数据传输( recvfrom函数) 格式: int recvfrom(SOCKET s,char FAR* buf,int len,int flags,struct sockaddr FAR* from,int FAR* fromlen); 参数: s:准备接收数据的套接字 buf:指向缓冲区的指针 len:缓冲区长度 flags:其设定值将影响函数的行为 from:接收发送数据方的地址信息 fromlen:返回地址结构的大小 服务器(Server) 五、关闭套接字(closesocket函数) 格式: closesocket(SOCKET sock); 参数: sock:已创建的socket 客户端(Client) 一、启动Winsock(WSAStartup函数) 二、创建套接字(socket函数) 客户端(Client) 三、无连接的数据传输( sendto函数) 格式: int sendto(SOCKET s,const char FAR* buf,int len,int flags,const struct sockaddr FAR* to,int tolen); 参数: s:套接字描述

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档