当前位置: 首页 > news >正文

自助网站制作系统源码大庆最新消息今天

自助网站制作系统源码,大庆最新消息今天,银河盛世网站建设,建手机网站的必要性send()、recv()、sendto()和recvfrom()函数解析 一般情况下#xff0c;send()、recv()在TCP协议下使用#xff0c;sendto()、recvfrom()在UDP协议下使用#xff0c;也可以在TCP协议下使用#xff0c;不过用的很少。 1、send() 这里只描述同步socket的send()函数的执行流…send()、recv()、sendto()和recvfrom()函数解析 一般情况下send()、recv()在TCP协议下使用sendto()、recvfrom()在UDP协议下使用也可以在TCP协议下使用不过用的很少。 1、send() 这里只描述同步socket的send()函数的执行流程。 s套接字 | buf存储发送数据 | len发送数据长度 当调用该函数时send()先比较待发送数据的长度len和套接字s的发送缓冲的长度 如果len大于套接字s的发送缓冲区的长度该函数返回SOCKET_ERROR如果len小于或者等于套接字s的发送缓冲区的长度那么send()先检查协议是否正在发送套接字s的发送缓冲中的数据如果是就等待协议把数据发送完如果协议还没有开始发送套接字s的发送缓冲中的数据或者套接字s的发送缓冲中没有数据那么send就比较套接字s的发送缓冲区的剩余空间和len如果len大于剩余空间大小,send()就一直等待协议把套接字s的发送缓冲中的数据发送完如果len小于剩余空间大小,send()就仅仅把buf中的数据copy到剩余空间里。 注意并不是send()把套接字s的发送缓冲中的数据传到连接的另一端的而是协议传的send()仅仅是把buf中的数据copy到套接字s的发送缓冲区的剩余空间里。 如果send()函数copy数据成功就返回实际copy的字节数如果send()在copy数据时出现错误那么send()就返回SOCKET_ERROR如果send()在等待协议传送数据时网络断开的话那么send()函数也返回SOCKET_ERROR。 要注意send()函数把buf中的数据成功copy到套接字s的发送缓冲的剩余空间里后它就返回了但是此时这些数据并不一定马上被传到连接的另一端。 如果协议在后续的传送过程中出现网络错误的话那么下一个Socket函数就会返回SOCKET_ERROR。 每一个除send()外的Socket函数在执行的最开始总要先等待套接字的发送缓冲中的数据被协议传送完毕才能继续如果在等待时出现网络错误那么该Socket函数就返回SOCKET_ERROR 注意在Unix系统下如果send()在等待协议传送数据时网络断开的话调用send()的进程会接收到一个SIGPIPE信号进程对该信号的默认处理是进程终止。 2、recv() 这里只描述同步Socket的recv函数的执行流程。 s套接字 | buf存储发送数据 | len发送数据长度 当应用程序调用recv()函数时recv()先等待s的发送缓冲中的数据被协议传送完毕如果协议在传送套接字s的发送缓冲中的数据时出现网络错误那么recv()函数返回SOCKET_ERROR 如果s的发送缓冲中没有数据或者数据被协议成功发送完毕后recv()先检查套接字s的接收缓冲区如果套接字s接收缓冲区中没有数据或者协议正在接收数据那么recv()就一直等待只到 协议把数据接收完毕。 当协议把数据接收完毕recv()函数就把s的接收缓冲中的数据copy到buf中注意协议接收到的数据可能大于buf的长度所以在这种情况下要调用几次recv()函数才能把s的接收缓冲中的数据copy完。recv()函数仅仅是copy数据真正的接收数据是协议来完成的recv()函数返回其实际copy的字节数。如果recv()在copy时出错那么它返回SOCKET_ERROR如果recv()函数在等待协议接收数据时网络中断了那么它返回0。 注意在Unix系统下如果recv()函数在等待协议接收数据时网络断开了那么调用recv()的进程会接收到一个SIGPIPE信号进程对该信号的默认处理是进程终止。 3、sendto() recvfrom() 在无连接的数据报socket方式下由于本地socket并没有与远端机器建立连接所以在发送数据时应指明目的地址sendto()函数原型为 int sendto(int sockfd,const void *msg,int len,unsigned int flags,const struct sockaddr *to,int tolen );该函数比send()函数多了两个参数to表示目地机的IP地址和端口号信息而tolen常常被赋值为sizeof(struct sockaddr)。sendto() 函数也返回实际发送的数据字节长度或在出现发送错误时返回 -1。 recvfrom()的情况与sendto()类似也需要目的地址函数原型为 int recvfrom(int sockfd,void *buf,int len,unsigned int lags,struct sockaddr *from,int *fromlen ); from是一个struct sockaddr类型的变量该变量保存源机的IP地址及端口号。fromlen常置为sizeof(struct sockaddr)。当recvfrom()返回时fromlen包含实际存入from中的数据字节数。recvfrom()函数返回接收到的字节数或当出现错误时返回 -1并置相应的errno。
http://www.w-s-a.com/news/172803/

相关文章:

  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好