Python网络编程之高级网络操作

1. 半开放socket

socket是双向的-----socket的两端都可以进行读或写。有的时候我们需要仅仅在一个方向上传输数据,这时候就用到了半开放socket。半开放socket可以用于以下情况:

  • 确保所有的数据都已经被传输完毕。
  • 捕获潜在的程序错误,这些错误是由于读了不能读的socket,或者写了不能写的socket。
  • 您的程序使用了fork()或多线程,而您想防止其他进程或线程进行读写操作,或者想立刻关闭一个socket。

socket.shutdown()可以解决上面的问题。

当使用fork()或多线程时,还会产生一种情况。当调用socket.close()时,只会关闭当前进程的socket。只有当所有的进程都关闭了socket,或者socket超过了范围,或者socket被删除或终止,该连接才会被真正关闭。当与远程机器的通信结束时,可以调用shutdown来关闭socket。

shutdown关闭socket有三种使用方式:

  • 0 表示禁止将来读。
  • 1 表示禁止将来写。
  • 2 表示禁止将来读写。

shutdown是累计的,先设置0,再设置1,会将socket设置为禁止将来读写,与设置为2是一样的。

5.2 超时

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值