{"id":263,"date":"2016-02-22T20:51:41","date_gmt":"2016-02-22T20:51:41","guid":{"rendered":"https:\/\/www.kolkataonweb.com\/code-bank\/?p=263"},"modified":"2016-07-18T21:34:42","modified_gmt":"2016-07-18T20:34:42","slug":"php-socket-client","status":"publish","type":"post","link":"https:\/\/www.kolkataonweb.com\/code-bank\/php\/php-socket-client\/","title":{"rendered":"PHP Socket Client"},"content":{"rendered":"<p>This is a simple client that is running two different requests. One at every 2 seconds and another every 5 minutes. The 2 second one retrieved data from server and the 5 minute one sends data to server.<\/p>\n<blockquote>\n<pre class='wp-code-highlight prettyprint'><span style=\"color: #333333;\">&lt;?php\r\nset_time_limit(0);\r\nob_implicit_flush();\r\n\r\n$host\u00a0\u00a0\u00a0 = \"xxx.xxx.xxx.xxx\";\r\n$port\u00a0\u00a0\u00a0 = 1250;\r\n\r\n$lastUpdate = time();\r\n\r\nwhile(1)\r\n{\r\n\u00a0\u00a0 \u00a0if(time() - $lastUpdate &gt; 300) \/\/if 5 minutes elapsed\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$message = \"action=4512|temp=29.67|paM=10025.69|paH=125.69|led1=1|led2=0\\r\\n\"; \/\/ the data to be sent separated by | The \\r\\n is important - it will tell the server that the string\/data ends there\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ create socket\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die(\"Could not create socket\\n\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ connect to server\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$result = socket_connect($socket, $host, $port) or die(\"Could not connect to server\\n\"); \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ send command\/query to server\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0socket_write($socket, $message, strlen($message)) or die(\"Could not send data to server\\n\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ get server response\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$result = socket_read ($socket, 1024, PHP_NORMAL_READ) or die(\"Could not read server response\\n\"); \/\/ 1024 is the max bytes that the socket will read if no \\r\\n is encountered. For the \\n\\r terminator PHP_NORMAL_READ is needed.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo \"Reply From Server: \".$result.\"\\n\";\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ close socket\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0socket_close($socket);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$lastUpdate = time();\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0else\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$message = \"action=1223\\r\\n\";\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ create socket\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die(\"Could not create socket\\n\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ connect to server\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$result = socket_connect($socket, $host, $port) or die(\"Could not connect to server\\n\"); \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ send command\/query to server\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0socket_write($socket, $message, strlen($message)) or die(\"Could not send data to server\\n\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ get server response\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$result = socket_read ($socket, 1024, PHP_NORMAL_READ) or die(\"Could not read server response\\n\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo \"Reply From Server: \".$result.\"\\n\";\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ close socket\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0socket_close($socket);\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0flush(); \/\/may be this can be removed\r\n\u00a0\u00a0 \u00a0sleep(2);\r\n\u00a0\u00a0 \u00a0flush();\r\n}\r\n?&gt;<\/span><\/pre>\n<\/blockquote>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a simple client that is running two different requests. One at every 2 seconds and another every 5 minutes. The 2 second one retrieved data from server and the 5 minute one sends data to server. &lt;?php set_time_limit(0); ob_implicit_flush(); $host\u00a0\u00a0\u00a0 = &#8220;xxx.xxx.xxx.xxx&#8221;; $port\u00a0\u00a0\u00a0 = 1250; $lastUpdate = time(); while(1) { \u00a0\u00a0 \u00a0if(time() -&hellip; <a class=\"more-link\" href=\"https:\/\/www.kolkataonweb.com\/code-bank\/php\/php-socket-client\/\">Continue reading <span class=\"screen-reader-text\">PHP Socket Client<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[24,25,26],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-php","tag-php-socket","tag-socket","tag-socket-client","entry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":5,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"predecessor-version":[{"id":450,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/263\/revisions\/450"}],"wp:attachment":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}