Direct Download Center

มาคุยกันก่อน


คลิกที่นี่ เข้ามารู้จักกันก่อน
Mr. P

Python ส่งข้อมูลผ่าน UDP Protocol อย่างง่าย

โพสต์15 ต.ค. 2552, 1:24โดยSample User   [ อัปเดต 26 ก.พ. 2553, 6:10 โดย Wisit P. ]
   
ตัวอย่างนี้เป็นการเขียนไพธอนผ่านระบบแลน โดยให้คอมพิวเตอร์สองเครื่องที่ติดตั้งตัวแปลภาษาไพธอนเอาไว้แล้ว ทำการคุยกันหรือติดต่อกันผ่าน UDP protocol โดยทำการเปิดพอร์ตที่เครื่องคอมพิวเอตร์ทั้งสอง โดยใช้พอร์ตหมายเลข port = 8081  จากนั้นเมื่อเรารันคำสั่งทั้งที่ตัว server และ ตัว client ที่ตัว server ทำหน้าที่เปิดพอร์ต 8081  และรอรับ message ที่ส่งมาจากตัว client โดยทำการวนลูปไปเรื่อยๆ (วนลูปไม่รู้จบ) และที่ตัว client ทำการส่งข้อความ "Holy Guido! It's working." พร้อมกับหมายเลข IP Address ของตัวเองออกไป



    ที่หน้าจอ cmd ของที่ตัว server จะปรากฏข้อความ พร้อมทั้ง IP Address ของตัว client ที่ส่งมา ให้สังเกตหมายเลขไอพีแอดแดรสบนหน้าจอคอมพิวเตอร์



หน้าจอของ client 


หน้าจอของ server


server.py
import socket port = 8081
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Accept UDP datagrams, on the given port, from any sender
s.bind(("", port))
print "waiting on port:", port
while 1:
    # Receive up to 1,024 bytes in a datagram
    data,addr = s.recvfrom(1024)
    print "Received:", data, "from", addr


client.py
import socket port = 8081
host = "10.7.29.14"
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto("Holy Guido! It's working.", (host, port))


หมายเหตุ หากต้องการทดลองที่เครื่องตนเอง ให้แก้ไขที่ไฟล์ client.py ให้ host = "localhost"

Credit: Jeff Bauer