ซ็อกเก็ตถูกใช้ในภาษาการเขียนโปรแกรม (PL) PHP เพื่อแลกเปลี่ยนข้อมูลกับเซิร์ฟเวอร์ แอปพลิเคชั่นบางตัวต้องการการใช้ซ็อกเก็ตสำหรับการถ่ายโอนข้อมูลและเขียนพารามิเตอร์บริการ หากต้องการเปิดใช้งานโหมดการเชื่อมต่อกับเซิร์ฟเวอร์ ให้ใช้ฟังก์ชัน fsockopen () ซึ่งตั้งค่าพารามิเตอร์การเชื่อมต่อที่จำเป็น
คำแนะนำ
ขั้นตอนที่ 1
ฟังก์ชัน fsockopen () มีรูปแบบดังนี้:
fsockopen (ชื่อโฮสต์, พอร์ต);
ในกรณีนี้ ชื่อโฮสต์คือชื่อของเซิร์ฟเวอร์ที่เข้าถึงโดยใช้ซ็อกเก็ตและการเปิดช่องสัญญาณสำหรับการส่งข้อมูล ค่าพอร์ตคือตัวเลขที่สอดคล้องกับพอร์ตที่ใช้ในการเข้าถึงเซิร์ฟเวอร์
ขั้นตอนที่ 2
ใช้โปรแกรมแก้ไขข้อความเพื่อเขียนโค้ดนี้ลงในไฟล์ PHP ของคุณเพื่อเริ่มการดำเนินการแลกเปลี่ยนข้อมูลซ็อกเก็ต ตัวอย่างเช่น หากต้องการเชื่อมต่อกับ server.com เฉพาะบนพอร์ต 120 ให้ป้อนคำสั่งต่อไปนี้:
<?php
$ serv = “server.com”;
$ serv_port = 120;
$ open_con = fsockopen ($ เสิร์ฟ, $ serv_port);
ถ้า (! $ Open_con) {
ออก (); } อื่น {Echo "สร้างการเชื่อมต่อแล้ว";
$ ชั่วขณะ = fgets ($ open_con, 1024); }
?>
ขั้นตอนที่ 3
รหัสนี้กำหนดค่าที่สอดคล้องกับตัวแปรด้วยชื่อเซิร์ฟเวอร์ ($ serv) และหมายเลขพอร์ต ($ serv_port) หากไม่มีการเชื่อมต่อกับเซิร์ฟเวอร์ สคริปต์จะยุติการทำงานโดยใช้คำสั่ง exit () หากการเชื่อมต่อสำเร็จ โปรแกรมจะแสดงการแจ้งเตือนเกี่ยวกับการสร้างการเชื่อมต่อและบันทึกพารามิเตอร์ไปยังตัวแปรชั่วคราว $
ขั้นตอนที่ 4
หลังจากใช้ fsockopen () คุณสามารถใช้ฟังก์ชันเพื่อจัดการไฟล์และดึงข้อมูลได้ ดังนั้น นอกเหนือจาก fgets () ที่กล่าวมาแล้ว คุณสามารถใช้ fwrite () เพื่อเขียนไฟล์, fclose () เพื่อปิด หรือ feof () เพื่อตรวจสอบว่าจุดสิ้นสุดของไฟล์นั้นมาถึงแล้ว วิธีนี้ทำให้คุณสามารถบันทึกข้อมูลบางอย่างที่ส่งโดยเซิร์ฟเวอร์ที่คุณเชื่อมต่ออยู่ ตัวอย่างเช่น:
$ data_con = “GET / HTTP / 1.1 / r / n”;
$ data_con. = “การเชื่อมต่อ: ปิด / r / n / r / n”;
fwrite ($ open_con, $ data_con);
$ fclose ($ open_con);
ขั้นตอนที่ 5
คำขอนี้อ่านส่วนหัว GET ที่ส่งโดยเซิร์ฟเวอร์ จากนั้นเขียนข้อมูลการตัดการเชื่อมต่อจากมันด้วยพารามิเตอร์ที่เกี่ยวข้องซึ่งเขียนในตัวแปร $ data_con สิ้นสุดการเขียนไปยังไฟล์โดยใช้ฟังก์ชัน fclose ()
ขั้นตอนที่ 6
การเปิดซ็อกเก็ตและเขียนข้อมูลการเชื่อมต่อเสร็จสมบูรณ์ บันทึกไฟล์และอัปโหลดเพื่อทดสอบบนโฮสต์หรือเซิร์ฟเวอร์ในพื้นที่ของคุณ