{"id":20380,"date":"2024-03-15T20:22:12","date_gmt":"2024-03-15T20:22:12","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/"},"modified":"2024-03-21T17:57:02","modified_gmt":"2024-03-21T17:57:02","slug":"how-is-the-select-function-used-in-python","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/","title":{"rendered":"How is the select function used in Python?"},"content":{"rendered":"<p>In Python, select() is a function used for multiplexing. It can monitor the read and write states of multiple file objects (including sockets) simultaneously. When any of these file objects are ready (either for reading or writing), the select() function will return that file object.<\/p>\n<p>The basic syntax of the select() function is as follows:<\/p>\n<pre class=\"post-pre\"><code>read_list, write_list, error_list = select.select(inputs, outputs, exceptions, timeout)\r\n<\/code><\/pre>\n<p>Explanation of parameters:<\/p>\n<ol>\n<li>input: list of readable objects that need to be monitored.<\/li>\n<li>outputs: list of writable objects that need to be monitored.<\/li>\n<li>exceptions: a list of abnormal objects that need to be monitored.<\/li>\n<li>Timeout: Optional parameter that sets the time limit in seconds (by default, it will block until an object is ready).<\/li>\n<\/ol>\n<p>Explanation of the return value:<\/p>\n<ol>\n<li>ready objects in the list of readable objects.<\/li>\n<li>List of writable objects that are ready to be written.<\/li>\n<li>ready objects in the list of exceptional objects.<\/li>\n<\/ol>\n<p>Example usage:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> select\r\n<span class=\"hljs-keyword\">import<\/span> socket\r\n\r\n<span class=\"hljs-comment\"># \u521b\u5efa\u5957\u63a5\u5b57\u5e76\u76d1\u542c<\/span>\r\nserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\nserver_socket.bind((<span class=\"hljs-string\">'localhost'<\/span>, <span class=\"hljs-number\">8000<\/span>))\r\nserver_socket.listen(<span class=\"hljs-number\">5<\/span>)\r\n\r\ninputs = [server_socket]\r\n\r\n<span class=\"hljs-keyword\">while<\/span> <span class=\"hljs-literal\">True<\/span>:\r\n    <span class=\"hljs-comment\"># \u4f7f\u7528select\u51fd\u6570\u8fdb\u884c\u76d1\u89c6<\/span>\r\n    readable, writable, exceptional = select.select(inputs, [], [])\r\n\r\n    <span class=\"hljs-keyword\">for<\/span> sock <span class=\"hljs-keyword\">in<\/span> readable:\r\n        <span class=\"hljs-keyword\">if<\/span> sock <span class=\"hljs-keyword\">is<\/span> server_socket:\r\n            <span class=\"hljs-comment\"># \u6709\u65b0\u7684\u8fde\u63a5\u8bf7\u6c42<\/span>\r\n            client_socket, client_address = server_socket.accept()\r\n            inputs.append(client_socket)\r\n        <span class=\"hljs-keyword\">else<\/span>:\r\n            <span class=\"hljs-comment\"># \u6709\u6570\u636e\u53ef\u8bfb<\/span>\r\n            data = sock.recv(<span class=\"hljs-number\">1024<\/span>)\r\n            <span class=\"hljs-keyword\">if<\/span> data:\r\n                <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">'Received:'<\/span>, data.decode())\r\n            <span class=\"hljs-keyword\">else<\/span>:\r\n                <span class=\"hljs-comment\"># \u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5<\/span>\r\n                sock.close()\r\n                inputs.remove(sock)\r\n<\/code><\/pre>\n<p>In the above example, the select() function is used to monitor the readability of socket objects. When a new connection request is received, the new client socket is added to the inputs list. If the client sends data, it is printed out.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Python, select() is a function used for multiplexing. It can monitor the read and write states of multiple file objects (including sockets) simultaneously. When any of these file objects are ready (either for reading or writing), the select() function will return that file object. The basic syntax of the select() function is as follows: [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-20380","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How is the select function used in Python? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How is the select function used in Python?\" \/>\n<meta property=\"og:description\" content=\"In Python, select() is a function used for multiplexing. It can monitor the read and write states of multiple file objects (including sockets) simultaneously. When any of these file objects are ready (either for reading or writing), the select() function will return that file object. The basic syntax of the select() function is as follows: [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T20:22:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T17:57:02+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ava Mitchell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"How is the select function used in Python?\",\"datePublished\":\"2024-03-15T20:22:12+00:00\",\"dateModified\":\"2024-03-21T17:57:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\"},\"wordCount\":192,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\",\"name\":\"How is the select function used in Python? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T20:22:12+00:00\",\"dateModified\":\"2024-03-21T17:57:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is the select function used in Python?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is the select function used in Python? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/","og_locale":"en_US","og_type":"article","og_title":"How is the select function used in Python?","og_description":"In Python, select() is a function used for multiplexing. It can monitor the read and write states of multiple file objects (including sockets) simultaneously. When any of these file objects are ready (either for reading or writing), the select() function will return that file object. The basic syntax of the select() function is as follows: [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T20:22:12+00:00","article_modified_time":"2024-03-21T17:57:02+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"How is the select function used in Python?","datePublished":"2024-03-15T20:22:12+00:00","dateModified":"2024-03-21T17:57:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/"},"wordCount":192,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/","name":"How is the select function used in Python? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T20:22:12+00:00","dateModified":"2024-03-21T17:57:02+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-select-function-used-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is the select function used in Python?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=20380"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20380\/revisions"}],"predecessor-version":[{"id":54174,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20380\/revisions\/54174"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=20380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=20380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=20380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}