วันพุธที่ 29 มิถุนายน พ.ศ. 2559

ทดลองส่งข้อความผ่านโปรโตคอล TCP โดยใช้คลาส php-socket-raw

ผู้เขียนเพิ่งจะมีโอกาสใช้งานโปรแกรม php มากขึ้นเรื่อยๆ เริ่มต้นจากการใช้งานเวบเซอร์วิส หลังจากนั้นก็เริ่มทำการส่งข้อมูลผ่านเครือข่าย udp หลังจากเสียเวลาศึกษาค้นคว้าหลายวันเพิ่งจะพบว่ามีคลาส php-socket-raw สามารถใช้งานได้อย่างง่ายดาย และมีเสถียรภาพสูง สำหรับหลายๆ คนที่ไม่เคยใช้งานมาก่อน มาวันนี้ลองไป ทดลองส่งข้อความผ่านโปรโตคอล TCP โดยใช้คลาส php-socket-raw กันเลย


ขั้นตอนที่ 1 ติดตั้งคลาส php-socket-raw โดยใช้คอมโพเซอร์

$composer require clue/socket-raw:~1.2

ขั้นตอนที่ 2 ทดลองคีย์โปรแกรมตามตัวอย่างเพื่อทดสอบการทำงาน

#!/usr/bin/env php
<?php

use Socket\Raw\Factory;

error_reporting(-1);

require_once __DIR__.'/vendor/autoload.php';

$factory = new Factory();
$socket = $factory->createClient('www.google.com:80');

echo 'Client connected to ' . $socket->getPeerName() . PHP_EOL . PHP_EOL;

$socket->write("GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n");

var_dump($socket->read(8192));

$socket->close();


3.ผลลัพธ์การรันโปรแกรม


root@sedonaVM:/var/www/tpit/ywt# php client-tcp.php
Client connected to 61.19.2.153:80

string(894) "HTTP/1.1 302 Found
Location: http://www.google.co.th/?gws_rd=cr&ei=sXhzV9qTPMr9vgTcyauIAQ
Cache-Control: private
Content-Type: text/html; charset=UTF-8
P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
Date: Wed, 29 Jun 2016 07:28:49 GMT
Server: gws
Content-Length: 261
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: NID=81=pYSdoPTx0tkWQ9q2mQT6AAZra1NCPZd0t6DAkoOjl0_MYofhZ-y2wR1VKF5zzE_1aIZ6QNNFMu5HTbhhl7tRVgH14UcSkuJr9IMCIeHbPPeg94Vt1XXJLurt1pU8RIGm; expires=Thu, 29-Dec-2016 07:28:49 GMT; path=/; domain=.google.com; HttpOnly

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.th/?gws_rd=cr&amp;ei=sXhzV9qTPMr9vgTcyauIAQ">here</A>.
</BODY></HTML>
"
จากตัวอย่างจะเห็นได้ว่าเป็นการเรียกใช้งานคลาสและสร้างซ็อกเก็ต ซึ่งนับว่าจะช่วยลดขั้นตอนการพัฒนาโปรแกรมไปได้มาก สะดวกสบายต่อการนำไปใช้งานโดยเฉพาะ
คุณสมบัติของคลาสตามมาตรฐานการพัฒนาแบบออบเจค(oop) งานด้านการพัฒนาซอต์ฟแวร์ยังมีกันให้เห็นอยู่อีกมากมาย สิ่งสำคัญที่สุดโปรแกรมสคริป php มีฟีเจอร์เด่นไม่เป็นรองใคร

ต้องขอขอบพระคุณพื้นที่เวบบล็อกดี ๆจาก บจก. ไทย พรอสเพอรัส ไอที พร้อมกับขอฝากเวบไซต์ใหม่ gpstrackingthailand.com ไว้ด้วยสำหรับนำเสนอเรื่องราวสาระอันเป็นประโยขน์
ต่อการพัฒนาระบบจีพีเอสติดตามรถยนต์ เก็บเกี่ยวจากประสพการณ์จริงๆ