UDP聊天器项目

由于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套接字本质上全双工的,因此可以同时进行收和发。此外对于一些代码的异常捕捉这个没有进行,而在实际运行的时候是会有各种的异常。

猜你喜欢

转载自blog.csdn.net/qq_32585565/article/details/84063113