功能:
可以向局域網內開啓接收信息功能的ip進行發送信息,我們可以寫兩段端口不同的代碼來實現在一臺電腦上與自己聊天.
關鍵點:
要想實現此功能必須將程序的端口固定
from socket import *
def udp_send(udp_socket):
# 發送消息 接收用戶輸入內容
send_mes = input("請輸入發送內容:")
# 接收用戶輸入ip
ip = input("請輸入ip地址:")
# 接收用戶輸入端口號
port = int(input("請輸入端口號"))
# 發送消息 內容進行編碼
udp_socket.sendto(send_mes.encode("gbk"), (ip, port))
def udp_recvfrom(udp_socket):
# 接收消息 最多4096個字節
get_mes, get_ip = udp_socket.recvfrom(4096)
print("收到來自%s的消息:%s" % (str(get_ip), get_mes.decode("gbk")))
def main():
# 創建套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)
# 設置固定端口
udp_socket.bind(("", 8889))
while True:
print("*" * 50)
print("----------無敵聊天器----------")
print("1.發送消息")
print("2.接收消息")
print("0.退出系統")
print("*" * 50)
user = input("請輸入要執行的操作:")
if user == "1":
udp_send(udp_socket)
elif user == "2":
udp_recvfrom(udp_socket)
elif user == "0":
break
else:
print("輸入有誤")
# 關閉套接字
udp_socket.close()
if __name__ == "__main__":
main()