การสร้างเซิร์ฟเวอร์ตั้งแต่เริ่มต้นเป็นงานใหญ่ อย่างไรก็ตาม การทำเช่นนี้สามารถพัฒนาทักษะการเขียนโปรแกรมของคุณได้อย่างมาก และช่วยให้คุณสามารถปรับเปลี่ยนตามความต้องการของคุณได้ บทช่วยสอนนี้จะใช้ python และโปรแกรมซ็อกเก็ตระดับต่ำเพื่อสร้างเซิร์ฟเวอร์เพื่อให้ลูกค้าสามารถสื่อสารกันได้ สิ่งนี้จะครอบคลุมเฉพาะกระบวนการบน windows เท่านั้น ข้อมูลบางส่วนจะได้รับในคำแนะนำ แต่ถ้าคุณต้องการรหัสเพียงอย่างเดียว รหัสจะมีให้ในรูป (หมายเหตุ: คำแนะนำที่นำเสนอนี้เป็นพื้นฐานเท่านั้น)
ขั้นตอน
วิธีที่ 1 จาก 3: การติดตั้ง Python
ขั้นตอนที่ 1. ดาวน์โหลด Python
ไปที่เว็บไซต์หลักของ python และดาวน์โหลด Python 2.7.10 หลังจากที่ดาวน์โหลดแล้วให้ดำเนินการตามขั้นตอนของโปรแกรมติดตั้ง python ด้วยการตั้งค่าเริ่มต้น ลิงค์นี้มีให้ที่นี่
ขั้นตอนที่ 2 เรียกใช้ IDLE (Python GUI)
ไปที่โฟลเดอร์ Python 2.7 และเรียกใช้ IDLE (Python GUI) ตอนนี้ python ควรอยู่ในเมนูเริ่มต้นของคุณซึ่งมี IDLE อยู่
ขั้นตอนที่ 3 สร้างไฟล์ใหม่
ไปที่ ไฟล์ ที่มุมบนซ้ายของหน้าต่างที่เพิ่งเปิดใหม่ และเลือก ไฟล์ใหม่ คุณควรมีหน้าต่างว่างเปิดขึ้นพร้อมชื่อ Untitled
วิธีที่ 2 จาก 3: การสร้างเซิร์ฟเวอร์
ขั้นตอนที่ 1 นำเข้าโมดูลที่จำเป็น
สองโมดูลที่จำเป็นสำหรับรหัสนี้คือ "ซ็อกเก็ต" และ "เธรด" สามารถทำได้โดยพิมพ์ในบรรทัดแรก “from socket import *” และในบรรทัดถัดไป “import threading”
ขั้นตอนที่ 2 สร้างเธรดใหม่
สิ่งนี้จะจัดการการจับคู่ลูกค้า 2 รายเข้าด้วยกัน เธรดคือกระบวนการที่สามารถทำงานได้ในขณะที่โปรแกรมหลักทำงาน พิมพ์ให้ตรงตามรูปที่แสดง สิ่งนี้จะตั้งค่าตัวแปรในเธรดเพื่อให้สามารถเรียกได้ในภายหลัง
ขั้นตอนที่ 3 สร้างกระบวนการเธรด
เพื่อให้ลูกค้าสื่อสารโดยตรง คุณต้องส่งข้อมูลของกันและกัน ซึ่งรวมถึงที่อยู่ IP ของพวกเขาและพอร์ตที่พวกเขาใช้ เมื่อต้องการทำสิ่งนี้ คุณต้องสร้างวัตถุซ็อกเก็ตซึ่งสามารถทำได้ด้วย “variableName = socket(AF_NET, SOCK_DGRAM)” สิ่งนี้จะสร้างวัตถุซ็อกเก็ตที่ใช้โปรโตคอล UDP ถัดไป ผูกซ็อกเก็ตกับที่อยู่ IP ของคุณด้วยหมายเลขพอร์ตที่แน่นอนด้วย “roomSocket.bind((' ', self.port))” พื้นที่ว่างหมายถึงที่อยู่ IP ของเครื่องพีซีภายในเครือข่ายท้องถิ่นของคุณและ self.port กำหนด หมายเลขพอร์ตที่รวมไว้เมื่อคุณเรียกเธรดนี้ สิ่งสุดท้ายที่คุณต้องทำกับซ็อกเก็ตนี้คือส่งข้อมูลผ่านมัน เนื่องจากนี่คือซ็อกเก็ต UDP คุณเพียงแค่ต้องทราบ IP และพอร์ตของคอมพิวเตอร์ที่คุณส่งข้อมูลไป ไวยากรณ์สำหรับการส่งคือ “socketName.sendto(IP, port)"
ขั้นตอนที่ 4 สร้างตัวแปรส่วนกลาง
สำหรับขั้นตอนนี้ คุณจะต้องกำหนดตัวแปรหลายตัว ซึ่งรวมถึงรายการผู้ใช้ หมายเลขพอร์ต จำนวนไคลเอนต์ ไคลเอนต์สำหรับเธรด และ ID ห้อง คุณจะต้องสร้างซ็อกเก็ตเพื่อให้เซิร์ฟเวอร์ของคุณสามารถโต้ตอบกับอินเทอร์เน็ตได้ ทำได้โดยการสร้างวัตถุซ็อกเก็ตใหม่และผูกเข้ากับที่อยู่ IP ของคุณด้วยหมายเลขพอร์ตที่แน่นอน (หมายเลขพอร์ตสามารถเป็นอะไรก็ได้ แต่โดยปกติแล้วจะเป็นสิ่งที่สูงเพื่อหลีกเลี่ยงการใช้กระบวนการอื่นหรือใช้หมายเลขพอร์ตที่สงวนไว้)
ขั้นตอนที่ 5. สร้างกระบวนการเซิร์ฟเวอร์หลัก
สิ่งนี้จะใช้ในที่อยู่ไคลเอนต์และเริ่มต้นเธรดที่สร้างขึ้นก่อนหน้านี้ ซึ่งรวมถึงรอรับข้อมูลจากบัฟเฟอร์และรับที่อยู่ไคลเอนต์และบันทึกเพื่อใช้ในเธรด วิธีรับข้อมูลจากซ็อกเก็ตของคุณคือการเรียกโดย "socketName.recvfrom (1024)" ตัวเลขที่นี่เป็นเพียงจำนวนไบต์ที่จะอ่านในแต่ละครั้ง ในตัวอย่างนี้ เรากำลังจัดเก็บไว้ในตัวแปรที่เรียกว่า userAddr และเมื่อสิ่งนี้เกิดขึ้น คุณสามารถบันทึกที่อยู่นี้ในรายการที่สร้างขึ้นในขั้นตอนที่ 4 คำสั่ง if จะสร้างเธรดของห้องถ้าคนสองคนเชื่อมต่อกันและจะสร้างห้องเท่านั้น เมื่อสองการเชื่อมต่อที่แตกต่างกันเกิดขึ้น
ขั้นตอนที่ 6 บันทึกงานของคุณ
ควรทำในไดเร็กทอรีที่เข้าถึงได้ง่ายเพื่อให้สามารถเข้าถึงได้ง่ายสำหรับการทดสอบ
วิธีที่ 3 จาก 3: การทดสอบ
ขั้นตอนที่ 1 สร้างไคลเอนต์ทดสอบ
นี่เป็นไคลเอนต์พื้นฐานที่จะจัดการเฉพาะว่าเซิร์ฟเวอร์ได้ส่งข้อมูลของไคลเอนต์อื่นไปยังไคลเอนต์ปัจจุบันหรือไม่ โปรดทราบว่าไม่เหมือนกับรหัสเซิร์ฟเวอร์ รหัสนี้ต้องใช้ชื่อเซิร์ฟเวอร์ หากคุณกำลังใช้งานทั้งหมดนี้บนคอมพิวเตอร์เครื่องเดียว ชื่อเซิร์ฟเวอร์ควรเป็นชื่อพีซีของคุณ คุณสามารถค้นหาชื่อคอมพิวเตอร์ของคุณได้โดยคลิกขวาที่ My Computer และไปที่คุณสมบัติ
ขั้นตอนที่ 2 บันทึกงานของคุณ
ควรอยู่ในไดเร็กทอรีเดียวกันกับรหัสเซิร์ฟเวอร์
ขั้นตอนที่ 3 เปิดหน้าต่างคำสั่งที่แตกต่างกันสามหน้าต่าง
ไปที่เมนูเริ่มต้นและในแถบค้นหาให้พิมพ์ "cmd" แล้วกด Enter ทำเช่นนี้สามครั้ง หน้าต่างควรมีลักษณะเช่นนี้
ขั้นตอนที่ 4 เรียกใช้โปรแกรม
คุณจะต้องพิมพ์เส้นทางที่แน่นอนเมื่อใช้หน้าต่างคำสั่ง คุณจะต้องเรียกใช้โค้ดเซิร์ฟเวอร์ก่อนในหน้าต่างคำสั่งหนึ่ง จากนั้นจึงเรียกใช้โค้ดไคลเอ็นต์ทดสอบในอีกสองหน้าต่างที่เหลือ หากทุกอย่างสำเร็จ คุณจะได้รับข้อความเหล่านี้ในหน้าต่างของคุณ
คำเตือน
- โปรแกรมนี้จะทำงานเมื่อรันและทดสอบไคลเอนต์บนเครือข่ายท้องถิ่นเดียวกันเท่านั้น
- Python 2.7.10 ล้าสมัยและใกล้จะสิ้นสุดการสนับสนุน หากต้องการสร้างเซิร์ฟเวอร์ที่ดีต่อไป ขอแนะนำให้ติดตั้ง Python 3 เวอร์ชันล่าสุดแทน