udp編程

0丶邏輯

1丶建立套接字
2丶綁定端口(非必須)
3丶發送和接收數據
4丶關閉套接字

1丶建立udp.py文件

import  socket
class UdpSocket(object):
    def __init__(self,ip,port):
        self.ip = ip
        self.port = port

    def create_socket(self):
        # 建立套接字
        self.udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        # 綁定本地ip和端口,元祖類型
        self.udp_socket.bind((self.ip,self.port))

    def send_data(self):
        self.create_socket()
        while True:
            senddata = input("請輸入要發送的信息:")
            if senddata == "exit":
                break
            # 發送的數據須要encode編碼成二進制,同時指定接收方的ip和端口
            self.udp_socket.sendto(senddata.encode("utf-8"), ("192.168.1.50", 6666))

        #關閉套接字
        self.udp_socket.close()

    def recv_data(self):
        self.create_socket()
        while True:

            # recv_data = self.udp_socket.recv(1024)  #只接收用戶發過來的數據
            recv_data,recv_user_info = self.udp_socket.recvfrom(1024)  #接收的數據包含用戶ip和端口信息以及數據

            #打印接收的數據,注意編碼,二進制轉化成十進制decode
            print("客戶端%s:%s" %(str(recv_user_info),recv_data.decode("gbk"))) 
            # print(recv_data)
        self.udp_socket.close()

2丶建立main.py文件

from udp import *

def main():
   udpsocket = UdpSocket("",7890)
   # udpsocket.send_data()
   udpsocket.recv_data()
if __name__ == '__main__':
    main()
相關文章
相關標籤/搜索