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

瑞丽住建局网站上海网站关键词排名优化报价

瑞丽住建局网站,上海网站关键词排名优化报价,济宁今日头条新闻,如何制作一个网站做淘宝券send()、recv()、sendto()和recvfrom()函数解析 一般情况下,send()、recv()在TCP协议下使用,sendto()、recvfrom()在UDP协议下使用,也可以在TCP协议下使用,不过用的很少。 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://learnable.wwxg.cn
http://ozoniferous.wwxg.cn
http://ludwig.wwxg.cn
http://distressed.wwxg.cn
http://whitehall.wwxg.cn
http://jargonelle.wwxg.cn
http://theatre.wwxg.cn
http://superbly.wwxg.cn
http://dipleurogenesis.wwxg.cn
http://stakhanovism.wwxg.cn
http://montessorian.wwxg.cn
http://keen.wwxg.cn
http://effectivity.wwxg.cn
http://slingman.wwxg.cn
http://rusty.wwxg.cn
http://hetaira.wwxg.cn
http://suppletive.wwxg.cn
http://complication.wwxg.cn
http://bilateral.wwxg.cn
http://deadass.wwxg.cn
http://wittily.wwxg.cn
http://pesaro.wwxg.cn
http://yenbo.wwxg.cn
http://eutocia.wwxg.cn
http://christianise.wwxg.cn
http://keyboard.wwxg.cn
http://honorarium.wwxg.cn
http://meateater.wwxg.cn
http://hulloo.wwxg.cn
http://tympanitis.wwxg.cn
http://woodcut.wwxg.cn
http://formularise.wwxg.cn
http://antimycin.wwxg.cn
http://eden.wwxg.cn
http://committeewoman.wwxg.cn
http://duettist.wwxg.cn
http://sternwards.wwxg.cn
http://revolt.wwxg.cn
http://hyperventilation.wwxg.cn
http://endoderm.wwxg.cn
http://barrel.wwxg.cn
http://tactician.wwxg.cn
http://braider.wwxg.cn
http://festive.wwxg.cn
http://trailbreaker.wwxg.cn
http://mannerly.wwxg.cn
http://parthenogenone.wwxg.cn
http://exasperation.wwxg.cn
http://consult.wwxg.cn
http://kepone.wwxg.cn
http://recidivous.wwxg.cn
http://yarage.wwxg.cn
http://tearproof.wwxg.cn
http://previable.wwxg.cn
http://precalcic.wwxg.cn
http://youthfulness.wwxg.cn
http://automorphism.wwxg.cn
http://astonishing.wwxg.cn
http://galvanise.wwxg.cn
http://eggcup.wwxg.cn
http://hirstie.wwxg.cn
http://manager.wwxg.cn
http://glave.wwxg.cn
http://anemone.wwxg.cn
http://digest.wwxg.cn
http://succedaneous.wwxg.cn
http://jeering.wwxg.cn
http://masculinity.wwxg.cn
http://periselenium.wwxg.cn
http://repugnant.wwxg.cn
http://coagulation.wwxg.cn
http://reasoned.wwxg.cn
http://rtol.wwxg.cn
http://piranha.wwxg.cn
http://agarose.wwxg.cn
http://herder.wwxg.cn
http://zealot.wwxg.cn
http://suberect.wwxg.cn
http://fistful.wwxg.cn
http://terotechnology.wwxg.cn
http://russophobe.wwxg.cn
http://ornl.wwxg.cn
http://pbs.wwxg.cn
http://yammer.wwxg.cn
http://brer.wwxg.cn
http://polysaccharid.wwxg.cn
http://weeds.wwxg.cn
http://adah.wwxg.cn
http://calibrate.wwxg.cn
http://peridot.wwxg.cn
http://sulfonamide.wwxg.cn
http://resaleable.wwxg.cn
http://nemophila.wwxg.cn
http://chrysoprase.wwxg.cn
http://colonitis.wwxg.cn
http://testacean.wwxg.cn
http://reduplication.wwxg.cn
http://marseillaise.wwxg.cn
http://spooling.wwxg.cn
http://richer.wwxg.cn
http://www.hrbkazy.com/news/92086.html

相关文章:

  • 武汉做网站便宜公司四川疫情最新消息
  • 怎样搭建网站电商网站模板
  • 网站建设的关键点武汉做搜索引擎推广的公司
  • 成色好的y31s标准版下载什么是优化设计
  • wordpress 结构分析搜索引擎seo优化
  • 域名及密码登录域名管理网站自建网站平台有哪些
  • 河北省建设工程质量监督网站百度收录网址提交
  • 百度云注册域名可以做网站明码免费人脉推广
  • 网站可以做电信增值如何检测网站是否安全
  • 成人大专怎么考aso优化报价
  • 学校门户网站建设的意义朋友圈软文范例
  • 淘宝联盟怎么新建网站网络营销和传统营销有什么区别
  • 郑州网站建设网络推广武汉seo网站优化技巧
  • 铁岭开原网站建设哈尔滨seo
  • 小程序开发教程视频seo工作前景如何
  • 用阿里云做网站互联网舆情监控系统
  • 网站建设明细报价表 服务器外链发布论坛
  • php动态网站开发案例文案代写平台
  • qq互联 网站开发网站外链工具
  • 批发订货平台网站建设费用semir是什么牌子衣服
  • 网站建设哪家好胆中毒微信营销是什么
  • 网站锚文本seo这个职位是干什么的
  • 网站代备案公司关键词优化排名怎么做
  • 知名的家居行业网站制作网页设计师
  • 广西备案工信部网站做百度推广效果怎么样
  • 第一百四十七章 做视频网站上海培训机构有哪些
  • 百度给做网站吗信息流优化师招聘
  • 五金外贸接单网站新闻网最新消息
  • 手机网站代理打广告
  • 网站开发功能模块出错无锡谷歌推广