# Python 使用 TCP 阻塞的介绍
在网络编程中,TCP(传输控制协议)是一种重要的通信协议,具有可靠性和顺序传输的特点。本文将探讨如何在 Python 中实现 TCP 阻塞,并附带相关的代码示例和图示。
## TCP 概述
TCP 是一种面向连接的协议,为应用程序提供一个可靠的双向字节流。与 UDP (用户数据报协议) 相比,TCP 提供了数据传输的完整性和顺序性,适合需要高可靠性            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-01 05:46:02
                            
                                23阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Python TCP阻塞实现
## 介绍
在网络编程中,TCP是一种可靠的、面向连接的协议。在Python中,我们可以使用`socket`模块来实现TCP编程。本文将教会你如何使用Python实现TCP阻塞。
## 流程
下面是实现TCP阻塞的整个流程,通过一个表格展示每个步骤:
| 步骤 | 描述 |
| ------ | ------ |
| 创建socket对象 | 创建一个新的s            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-14 05:39:42
                            
                                178阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在阻塞模式下,在IO操作完成前,执行的操作函数将一直等候而不会立刻返回,该函数所在的进程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管IO是否完成,该函数所在的线程将继续运行。阻塞模式编程简单,但效率低;非阻塞模式编程复杂,但效率高,比如:举个简单的例子,你点击一个发送按钮:
如果是阻塞式的,那么在发送未完成之前,界面就会"卡死"。
而非阻塞式的,无论数据有没有完成,你都继续进行            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-20 08:48:03
                            
                                148阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            网上的代码大都是官方的例子,不直观、不彻底。 结合网上的东西花了一周的时间。这是一篇socket应用级别的文章,更深入的了解(自己写的):最大视角-从Unix底层 理解 python的io模型、python异步IO、python的select、Unix的select、epollfileno 的本质:可读写文件一图了解 socket原理Python 标准输入输出通常:一些简单的概念结合在一起就变得混            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-29 23:01:14
                            
                                53阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上次为大家介绍了阻塞式多线程服务端程序和阻塞式客户端程序的设计方法,但是在上文的最后也提到过,服务器程序会因为建立连接和关闭连接而频繁的创建和关闭线程会产生大量的内存碎片,从而导致服务端程序不能保证长时间的稳定运行。因此我在这里为大家介绍另外一种建立服务器和客户端程序的方法,即建立非阻塞式的服务器和客户端程序。  那什么是非阻塞呢?非阻塞是相对于阻塞而言,阻塞指的是在进行一个操作的时候,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-06 07:44:45
                            
                                195阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ## Python TCP 非阻塞
TCP(传输控制协议)是一种可靠的、面向连接的协议,被广泛用于网络通信中。在Python中,我们可以使用socket库来实现TCP通信。默认情况下,socket库使用阻塞方式进行通信,即当一个操作(如接收数据)发生时,程序将一直等待直到操作完成。然而,有时候我们希望程序在等待操作完成的同时能够继续执行其他任务,这就是非阻塞IO的概念。
在本文中,我们将介绍如            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-20 04:19:48
                            
                                683阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            package concurrentTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-12 07:38:03
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?本文较长需耐心阅读,基础较差的可多读几遍,这对你学习swoole非常有帮助!这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-15 08:57:19
                            
                                25阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            P.S. 阻塞分析从在调用过程中是否采用阻塞的判断逻辑看起就好。socket的结构Socket 使用tcp协议协议使用NET_FAMILY中的AF_INET/PF_INET内核是通过SOCK_STREAM来定位socket的,SOCK_STREAM结构如下:[/net/ipv4/af_inst.c/tatic struct inet_protosw inetsw_array[]]
static s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-12 14:52:43
                            
                                17阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一.SelectableChannelSelectableChannel支持阻塞和非阻塞模式的channel 非阻塞模式下的SelectableChannel,读写不会阻塞SelectableChannel可以向Selector注册监听就绪读和就绪写时间,当Selector发现这些时间触发,就会通知SelectableChannel进行读写主要函数java (1)public Selectable            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-27 08:05:01
                            
                                25阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、What网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。 Socke            
                
         
            
            
            
            # Python Socket TCP 阻塞式
在网络编程中,Socket 是一种在网络中进行通信的基本工具。TCP(Transmission Control Protocol)是一种可靠的、面向连接的协议,它提供了双向的字节流通信。在 Python 中,我们可以使用 Socket 模块来实现 TCP 阻塞式通信。
## 什么是阻塞式通信
在阻塞式通信中,当程序执行到接收数据的地方时,如果没            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-17 04:28:26
                            
                                15阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Python 在使用多线程时,要实现同时并发运行线程,一般都会用 Queue 队列来实现,但一用到 Queue 就难于控制线程与GUI 界面上的信息交互,特别是在用 tkinter 界面时,由于 tykinter 对线程安全并不友好,很容易出现卡壳情况。简单的多线程模型这里要实现的多线程模型仅用 threading 模块,这里先介绍网上最容易找到的实例,并进行说明其优缺点,后面再给出真正能并发多线            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-19 06:59:51
                            
                                44阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python tcp服务器用python开发的非阻塞多线程tcp服务器实现代码GUI界面TCP服务器客户端处理线程业务处理运行效果代码下载 用python开发的非阻塞多线程tcp服务器工作需要开发一个简单tcp服务器程序验证自定义的tcp协议,使用python相比于其他语言简单方便,简单实现了一个基于python的版本实现代码GUI界面使用tkinter开发了一个简单的GUI界面,实现代码如下:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-24 12:45:51
                            
                                60阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            关于TCP阻塞和非阻塞方式的总结1、引言在网络编程时,我们需要注意创建的socket是阻塞状态还是非阻塞状态的,这两种状态在编程时,对于每一个socket系统调用函数(connect、send、sendto、recv、recvfrom)都有一定的影响,socket的阻塞和非阻塞状态可以在每一个socket系统调用调用之前设置,对应着每一个socket系统调用是否是阻塞和非阻塞的;2、发送操作:(1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-13 23:18:47
                            
                                31阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            套接字的默认状态是阻塞的,这就意味着当发出一个不能立即完成的套接字调用时,其进程将被投入睡眠,等待响应操作完成,可能阻塞的套接字调用可分为以下四类:(1) 输入操作,包括read,readv,recv,recvfrom,recvmsg;(2) 输出操作,包括write,writev,send,sendto,sendmsg;(3) 接受外来连接,即accept函数。(4) 发起外出连接,即tcp的c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-05 21:56:11
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、阻塞模式       阻塞是socket的缺省方式,也是最常用的方式,即调用结果返回之前,函数阻塞,当前线程会挂 
 起, 
 suspend 
 。       可能造成阻塞的函数有:connect()、accept()、读写函数、gethostbyname()等。     二、再探  send 
 和 
 recv              
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-10 15:43:58
                            
                                268阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在Python中,你使用socket.setblocking(0)使它无阻塞。在C中,它更复杂,(一方面,你需要在BSD风格O_NONBLOCK和几乎不可区分的Posix风味O_NDELAY之间进行选择,这完全不同于TCP_NODELAY),但它是完全相同的想法。你在创建套接字之后,但在使用之前这样做。 (实际上,如果你坚果,你可以来回切换。)主要的机械差异是send,recv,connect和a            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-09 00:34:47
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一. 什么是TCP协议 TCP协议,传输控制协议(Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)主要的适用场景: 1.适合于对传输质量要求较高,以及传输大量数据的通信。 2.在需要可靠数据传输的场合,通常使用TCP协议。 3.HTTP/H            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-04 10:33:33
                            
                                130阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一.SelectableChannelSelectableChannel支持阻塞和非阻塞模式的channel
非阻塞模式下的SelectableChannel,读写不会阻塞SelectableChannel可以向Selector注册监听就绪读和就绪写时间,当Selector发现这些时间触发,就会通知SelectableChannel进行读写主要函数(1)public SelectableChann            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-27 09:57:22
                            
                                58阅读