socket建立UDP服務端和客戶端

UDP服務端代碼示例:

from socket import *

#1.建立數據報套接字
sockfd = socket(AF_INET, SOCK_DGRAM)

#2.綁定服務端地
sockfd.bind(("0.0.0.0", 8888))

while True:
    #3.接收消息   返回值:data 接收到的內容  addr 消息發送方的地址
     #recvfrom每次接收一個報文,若是沒有接收徹底則丟棄沒有收到的內容

    data, addr = sockfd.recvfrom(5)    
    print("Receive from %s:%s" % (data.decode(),addr))

    #4.發送消息 參數: data  要發送的內容(bytes)  addr  目標地址  
       # 返回:發送字節數
    data = input("給客戶端發送:")
    sockfd.sendto(data.encode(),addr)

#5.關閉套接字
sockfd.close()

----------------------------------------------------------------------
UDP客戶端代碼示例:

from socket import *
import sys

if len(sys.argv) < 3:
    print('''
            argv is error!
            argv < 3
            ''')

HOST = sys.argv[1]      #直接從命令端輸入,返回一個列表
PORT = int(sys.argv[2])
ADDR = (HOST,PORT)

#1. 建立套接字
sockfd = socket(AF_INET, SOCK_DGRAM)

while True:
    data = input("消息:")
    if not data:      #若是數據爲空字符串的話,就跳出循環
        break
    sockfd.sendto(data.encode(), ADDR)

    data,addr = sockfd.recvfrom(1024)
    print("從服務收到",data.decode())

sockfd.close()    
相關文章
相關標籤/搜索