{"id":43,"date":"2020-02-19T20:51:55","date_gmt":"2020-02-19T19:51:55","guid":{"rendered":"http:\/\/www.w2hp.net\/wp\/?page_id=43"},"modified":"2020-02-23T19:55:19","modified_gmt":"2020-02-23T18:55:19","slug":"myt","status":"publish","type":"page","link":"https:\/\/wp.w2hp.net\/?page_id=43","title":{"rendered":"Theaded Socket"},"content":{"rendered":"<p>menu<\/p>\n<pre><code>\r\nimport socket\r\nimport threading\r\nfrom time import ctime\r\n\r\nclass ThreadedServer(object):\r\n\u00a0\u00a0\u00a0 def __init__(self, host, port):\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.host = host\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.port = port\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock.bind((self.host, self.port))\r\n\r\n\u00a0\u00a0\u00a0 def listen(self):\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock.listen(5)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 while True:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 client, address = self.sock.accept()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 client.settimeout(60)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 threading.Thread(target = self.listenToClient,args = (client,address)).start()\r\n<\/code> <code>\r\n\u00a0\u00a0\u00a0 def listenToClient(self, client, address):\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 size = 1024\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 while True:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 try:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 data = client.recv(size)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if not data or data.decode('utf-8') == 'END':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if data:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # Set the response to echo back the recieved data \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 response = data + bytes(ctime(), 'utf-8')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 client.send(response)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 raise error('Client disconnected')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 except:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 client.close()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return False\r\n\r\nif __name__ == \"__main__\":\r\n\u00a0\u00a0\u00a0 while True:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 port_num = 12346\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 try:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 port_num = int(port_num)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 except ValueError:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pass\r\n\r\n\u00a0\u00a0\u00a0 ThreadedServer('',port_num).listen()<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>menu import socket import threading from time import ctime class ThreadedServer(object): \u00a0\u00a0\u00a0 def __init__(self, host, port): \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.host = host \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.port = port \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock.bind((self.host, self.port)) \u00a0\u00a0\u00a0 def listen(self): \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 self.sock.listen(5) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 while True: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 client, address = self.sock.accept() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 client.settimeout(60) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 threading.Thread(target = self.listenToClient,args &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/wp.w2hp.net\/?page_id=43\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eTheaded Socket\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-43","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=\/wp\/v2\/pages\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=43"}],"version-history":[{"count":5,"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=\/wp\/v2\/pages\/43\/revisions"}],"predecessor-version":[{"id":85,"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=\/wp\/v2\/pages\/43\/revisions\/85"}],"wp:attachment":[{"href":"https:\/\/wp.w2hp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}