tcp read 和 udp recvfrom

udp中写一个长度为0的数据报是可行的,这导致一个包含IP头部、udp头部和没有数据的IP数据报。这也意味着对于数据报协议,recvfrom返回0值也是可行的:它不表示对方已经关闭了连接,这与tcp套接口上read返回0值的情况不同。由于udp是无连接的这就没有诸如关闭连接之类的事情。

 

tcp客户端在调用connect时内核给套接口分配一个临时端口, udp客户端是在首次调用sendto时分配。 tcp和udp客户都可以提前给套接口bind,但一般只有服务器会这样做。

 

一般来说tcp服务器是并发的而udp服务器是迭代的。

具体来说tcp服务器用accept调用为每一个连接客户创建一个相应的套接字,组成一个唯一四元组,这标志着一条连接。而udp服务器一般只用一个套接字和所有客户端通信,所以说它是迭代的。

对于套接字来说每个套接字都对应有读写缓存。

见图示:

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值