iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >socket阻塞和非阻塞怎么设置
  • 258
分享到

socket阻塞和非阻塞怎么设置

socket 2023-09-16 11:09:16 258人浏览 八月长安
摘要

在使用Socket进行网络通信时,可以设置socket为阻塞或非阻塞模式。阻塞模式下,当执行socket的读取和写入操作时,如果没有

在使用Socket进行网络通信时,可以设置socket为阻塞或非阻塞模式。
阻塞模式下,当执行socket的读取和写入操作时,如果没有数据可读或无法立即写入数据,当前线程会被阻塞,直到有数据可读或可以写入数据。
非阻塞模式下,当执行socket的读取和写入操作时,如果没有数据可读或无法立即写入数据,当前线程不会被阻塞,而是立即返回一个错误码,然后可以通过不断地轮询socket状态来判断是否有数据可读或可以写入数据。
要设置socket为非阻塞模式,可以使用`socket.setblocking(False)`方法来实现。该方法接受一个布尔值参数,设置为False表示将socket设置为非阻塞模式。要设置回阻塞模式,可以使用`socket.setblocking(True)`。
下面是一个简单的示例代码,演示如何设置socket为非阻塞模式:
```python
import socket
# 创建一个tcp socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 将socket设置为非阻塞模式
sock.setblocking(False)
# 连接到服务器
sock.connect(('www.example.com', 80))
# 发送数据
sock.send('GET / Http/1.1\r\nHost: www.example.com\r\n\r\n')
# 接收数据
data = ''
while True:
try:
chunk = sock.recv(1024)
if not chunk:
break
data += chunk
except socket.error:
pass
# 关闭socket
sock.close()
# 打印接收到的数据
print(data)
```
在这个示例中,通过`sock.setblocking(False)`将socket设置为非阻塞模式,然后在接收数据时通过捕获socket.error异常来处理非阻塞模式下的错误码。

--结束END--

本文标题: socket阻塞和非阻塞怎么设置

本文链接: https://www.lsjlt.com/news/409767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • socket阻塞和非阻塞怎么设置
    在使用socket进行网络通信时,可以设置socket为阻塞或非阻塞模式。阻塞模式下,当执行socket的读取和写入操作时,如果没有...
    99+
    2023-09-16
    socket
  • socket怎么设置为非阻塞
    要将一个socket设置为非阻塞模式,可以使用以下步骤:1. 创建socket对象。```pythonimport socketso...
    99+
    2023-10-09
    socket
  • 怎么在java中实现阻塞和非阻塞
    这篇文章给大家介绍怎么在java中实现阻塞和非阻塞,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。1.概...
    99+
    2023-06-14
  • Linux怎么实现设备阻塞/非阻塞读写
    本篇内容介绍了“Linux怎么实现设备阻塞/非阻塞读写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!设备阻塞IO的实现当我们读写设备文件的I...
    99+
    2023-06-16
  • 同步异步,阻塞非阻塞
    众所周知JavaScript的执行环境是单线程的,当有多任务时,先执行前面的任务再按顺序狮子那个后面一个,如果前面一个任务耗时很长,那么多所有任务都将拖延,比如经常遇到的浏览器无响应其实就是因为某一段JavaScript代码长时间运行(死循...
    99+
    2023-06-03
  • 同步、异步与阻塞、非阻塞
    1. 同步与异步   同步和异步关注的是消息通信机制。同步就是在发出一个【调用】时,在没有拿到结果之前,该【调用】就不返回,但是一旦调用返回,就得到返回值了。   换句话说,就是由【调用者】主动等待这个【调用】的结果。     而异步正好...
    99+
    2023-01-31
  • Nodejs中阻塞和非阻塞的示例分析
    这篇文章主要介绍了Nodejs中阻塞和非阻塞的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于阻塞和非阻塞这两个概念大家应该都有一些自己的理解:再简单说一下,阻塞大...
    99+
    2023-06-15
  • 怎么使用recvfrom设置非阻塞
    要设置非阻塞模式,可以使用`fcntl`函数来设置套接字的属性。以下是一个使用`recvfrom`设置非阻塞的示例:```pytho...
    99+
    2023-08-24
    recvfrom
  • NIO Socket非阻塞模式是什么
    本篇内容主要讲解“NIO Socket非阻塞模式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NIO Socket非阻塞模式是什么”吧!NIO主要原理和适用NIO 有一个主要的类Selec...
    99+
    2023-06-17
  • linux阻塞与非阻塞的概念是什么
    在Linux系统中,阻塞和非阻塞是指对于输入/输出(I/O)操作的处理方式。阻塞(Blocking)是指当程序发起一个I/O操作时,...
    99+
    2023-09-16
    linux
  • go语言阻塞函数和非阻塞函数实现
    目录1、阻塞函数2、非阻塞函数3、总结1、阻塞函数 阻塞函数在没有得到结果之前,会将自己挂起,阻塞当前线程,如下所示。 package main import (     "fmt...
    99+
    2023-03-07
    go语言 阻塞函数 非阻塞函数
  • java 中同步、异步、阻塞和非阻塞区别详解
    java 中同步、异步、阻塞和非阻塞区别详解简单点说:阻塞就是干不完不准回来,一直处于等待中,直到事情处理完成才返回; 非阻塞就是你先干,我先看看有其他事没有,一发现事情被卡住,马上报告领导。我们拿最常用的send和recv两个函数来说吧....
    99+
    2023-05-31
    java 同步 异步
  • JAVA NIO下I/O的阻塞与非阻塞实现
    本篇内容介绍了“JAVA NIO下I/O的阻塞与非阻塞实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!当前环境jdk == 1.8代码地址...
    99+
    2023-06-02
  • go语言阻塞函数和非阻塞函数如何实现
    这篇文章主要介绍“go语言阻塞函数和非阻塞函数如何实现”,在日常操作中,相信很多人在go语言阻塞函数和非阻塞函数如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go语言阻塞函数和非阻塞函数如何实现”的疑...
    99+
    2023-07-05
  • php程序阻塞与非阻塞的区别有哪些
    本篇内容主要讲解“php程序阻塞与非阻塞的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php程序阻塞与非阻塞的区别有哪些”吧!PHP程序阻塞和非阻塞的区别是:阻塞调用结果返回之前,当...
    99+
    2023-06-29
  • 一篇文章理解阻塞、非阻塞、同步、异步
    目录理解阻塞、非阻塞、同步、异步阻塞非阻塞同步异步总结理解阻塞、非阻塞、同步、异步 首先说明,这些都是在特点场景下或者相对情况的词汇,OK,接下来开门见山。 阻塞 可以很直观的理解,...
    99+
    2024-04-02
  • Python中的同步异步阻塞与非阻塞是什么
    今天小编给大家分享一下Python中的同步异步阻塞与非阻塞是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、状态介绍在...
    99+
    2023-07-05
  • 对于同步、异步、阻塞、非阻塞的几点浅薄理
    首先我们先来看看: 一、同步与异步同步/异步, 它们是消息的通知机制(都是通过状态、通知、回调函数来返回结果)1. 概念解释    同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。 (按照这个定义,其实绝大多数...
    99+
    2023-01-30
    几点 浅薄
  • 粘包、阻塞与非阻塞、验证客户端的合法性
    1.1 tcp协议的粘包现象 tcp协议传输数据存在粘包现象,udp协议不存在粘包协议。 1.1.1 什么是粘包现象 1.发生在发送端的粘包 由于两个数据的发送时间间隔短+数据的长度小,所以由tcp协议的优化机制将两条信息作为一条信息...
    99+
    2023-01-31
    与非 客户端 合法性
  • 什么是异步非阻塞redis
    异步非阻塞redis又叫异步IO,在IO多路复用模型中,事件循环将文件句柄的状态事件通知给用户线程,由用户线程自行读取数据、处理数据。而在异步IO模型中,当用户线程收到通知时,数据已被内核读取并存储于用户线程指定的缓冲区内,内核在IO完成后...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作