UDP聊天器專案
阿新 • • 發佈:2018-11-14
由於UDP通訊不是面向連線的,且雙方都可以利用套接字進行收發資訊
import socket def send_msg(udp_socket): dest_ip = input("請輸入你的IP:") dest_port = int(input("請輸入你的埠:")) send_data = input("請輸入要傳送的資訊:") #將資訊傳送給目標套接字 udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port)) def recv_msg(udp_socket): #利用套接字進行接收資訊 recv_data = udp_socket.recvfrom(1024) print("%s:%s" % (recv_data[1], recv_data[0].decode("gbk"))) def main(): #建立UDP套接字 udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #繫結到固定的埠上面 udp_socket.bind(("",7788)) while True: #開始傳送資訊 send_msg(udp_socket) #開始接受資訊 recv_msg(udp_socket) if __name__ == "__main__": main()
缺陷不足:目前沒有使用多程序的方式進行編寫,同一時刻只能做到收或者發信息。UDP套接字本質上全雙工的,因此可以同時進行收和發。此外對於一些程式碼的異常捕捉這個沒有進行,而在實際執行的時候是會有各種的異常。