Python网络编程实现简单聊天室

Python网络编程:UDP实现简单聊天室

'''
这段代码用于实现一个UDP聊天室
'''
import socket
def connect():
    # 确认对端信息
    remote_addr = input("请输入对端的IP地址:")
    remote_port = int(input("请输入对端的端口信息:"))
    remote = (remote_addr,remote_port)
    return remote

def send_msg(udp_socket,remote):
    # 发送信息
    user_data = input("请输入要发送的消息:")
    udp_socket.sendto(user_data.encode("utf-8"),remote)


def recv_msg(udp_socket):
    # 接受信息
    recv_data_all = udp_socket.recvfrom(1024)
    recv_data_user = recv_data_all[1]
    recv_data_msg = recv_data_all[0]
    # 输出接受到的消息
    print("user:" + str(recv_data_user))
    print("data:" + recv_data_msg.decode("utf-8"))


def main():
    pass
    # 创建套接字
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    # 绑定本地信息
    local_addr = ("",7788)
    udp_socket.bind(local_addr)

    # 调用connect函数来确认对端的地址信息
    print("---------XZH聊天室-----------")
    print("---你必须先确定一个对端的信息---")
    remote = connect()
    while True:
        print("------XZH聊天室------")
        print("1,发送消息")
        print("2,接受消息")
        print("exit,退出聊天室")
        op = input("请选择")
        if op == "1":
            # 调用send_msg函数来发送信息
            send_msg(udp_socket, remote)
        elif op == "2":
            # 调用recv_msg函数来接受数据
            recv_msg(udp_socket)
        elif op == "exit":
            break
    # 关闭套接字
    udp_socket.close()
if __name__ == '__main__':
    main()

实验结果:

Python网络编程实现简单聊天室_第1张图片
Python网络编程实现简单聊天室_第2张图片
Python网络编程实现简单聊天室_第3张图片
Python网络编程实现简单聊天室_第4张图片

你可能感兴趣的:(Python)