Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ดาตาแกรมใน Python


กลุ่มของข้อมูลจะย้ายระหว่างไคลเอนต์และเซิร์ฟเวอร์โดยใช้ User Datagram Protocol หรือ UDP protocol ปลายทางการสื่อสารทั้งสองต้องมีที่อยู่ IP และหมายเลขพอร์ตเพื่อสร้างการสื่อสาร ปลายทางหนึ่งเรียกว่าผู้ส่งและอีกจุดหนึ่งเรียกว่าผู้รับ ในโปรโตคอลนี้ ผู้ส่งจะไม่ติดตามแพ็กเก็ตที่ส่ง และขึ้นอยู่กับผู้รับที่จะยอมรับหรือไม่รับแพ็กเก็ตทั้งหมด

โปรแกรมผู้ส่ง

โปรแกรมหลามด้านล่างใช้โมดูลซ็อกเก็ตเพื่อสร้างโปรแกรมของผู้ส่ง เราประกาศตัวแปรสำหรับที่อยู่ IP และพอร์ต จากนั้นเพิ่มข้อความลงไป sendto() ใช้เพื่อรวมข้อความกับที่อยู่ IP และหมายเลขพอร์ต

ตัวอย่าง

import socket

UDP_IP = "localhost"
UDP_PORT = 5050
MESSAGE = "Hello UDP! "

print ("Sent Message: ", MESSAGE)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(bytes(MESSAGE, "utf-8"), (UDP_IP, UDP_PORT))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Sent Message: Hello UDP!

โปรแกรมรับสัญญาณ

ในทำนองเดียวกัน เราสร้างโปรแกรมรับซึ่งจะได้รับข้อความที่ส่งโดยโปรแกรมผู้ส่ง ขนาดของข้อความในโปรแกรมด้านล่างถูกจำกัดไว้ที่ 1024 ไบต์ ฟังก์ชัน bind() ผูก IP และพอร์ตกับข้อมูลที่ได้รับ

ตัวอย่าง

import socket

UDP_IP = "localhost"
UDP_PORT = 5050

s= socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((UDP_IP, UDP_PORT))

while True:
   # buffer size is 1024 bytes
   data, addr = sock.recvfrom(1024)
   print("Received message:", data)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Received message: Hello UDP!