第12章PPT电子课件03UDP套接字编程_第1页
第12章PPT电子课件03UDP套接字编程_第2页
第12章PPT电子课件03UDP套接字编程_第3页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UDP套接字编程,本讲大纲:,数据传输系统调用,基于UDP协议的C/S机制的网络通信的工作原理,基于UDP的简单网络通信实例,数据传输系统调用,基于UDP的网络编程中,主要用到的函数有socket()、bind()、sendto()、recvfrom()和close()。在前面的套接字编程原理一节中,已经对创建套接字函数socket()、绑定套接字函数bind()和关闭套接字函数close()进行了介绍,在此对用于无连接的数据报套接字方式下的数据传输的函数sendto()和函数recvfrom()进行介绍。注意:sendto()函数和recvfrom()函数可用于面向连接的或无连接的套接字通信中。1.发送数据函数sendto()用于向指明目的地址的远端机器发送数据。该函数的定义形式如下:#include#includessize_tsendto(ints,constvoid*buf,size_tlen,intflags,conststructsockaddr*to,socklen_ttolen);参数s代表套接字描述符,参数buf用于指向发送信息的缓冲区的指针,参数len是发送的信息的长度,参数flags通常会设置为0,代表的是相关控制参数,主要用于控制是否接收数据以及是否预览报文。参数to为存放接收处的信息的指针,参数tolen是接收方地址的大小。函数如果调用成功,返回值为发送的字节数,否则返回值为-1,并设置相应的errno值。说明:如果sendto()函数用于面向连接的网络通信时,套接字类型为SOCK_STREAM或SOCK_SEQPACKET。此时参数to指向NULL,参数tolen为0,若不为此值,就会出现错误信息提示。2.接收数据函数recvfrom()实现了接收消息。该函数的定义形式如下:#include#includessize_trecvfrom(ints,void*buf,size_tlen,intflags,structsockaddr*from,socklen_t*fromlen);参数s为套接字描述符,参数buf指向接收信息的指针,参数len代表缓冲区的最大长度,参数flag通常设置为0,表示相关控制参数,参数from表示发送此信息处的地址指针,参数fromlen指向发送处地址大小的指针。,基于UDP协议的C/S机制的网络通信的工作原理,UDP是面向无连接的网络通信,并不需要像TCP套接字编程那样需要通过connect()与服务器建立连接,然后调用listen()函数使服务器处于监听状态,在通过accept()函数接收客户端的连接请求。UDP套接字编程,只需要创建用于通信的套接字,然后在服务器端绑定端口,然后就可以实现数据的传输。在绑定了地址信息之后,进行数据传输时,服务器会阻塞recvfrom()函数,等待客户端调用sendto()函数发送数据,同时客户端的recvfrom()被阻塞,然后,服务器会调用recvfrom()函数接收数据,接着向客户端作出应答,同时,服务端的recvfrom()被阻塞,接着,客户端调用rec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论