python使用socket实现双工通讯

import socket

def send_msg(udp_socket):
“”“发送消息”""
# 获取需要发送的类容
send_data = input(“请输入需要发送的类容:”)
# 获取ip端
dest_ip = input(“请输入对方的ip:”)
dest_port = int(input(“请输入对方的端口:”))
# 发送数据
udp_socket.sendto(send_data.encode(“gbk”), (dest_ip, dest_port))

def recv_msg(udp_socket):
“”“接收消息”""
# 接收数据最大长度1024
recv_data = udp_socket.recvfrom(1024)

# 解析出收到的数据
# recv_data这个变量接收的是一个元组(接收到的数据(发送方ip, port))
recv_msg = recv_data[0]  # 存储接收到的数据
send_addr = recv_data[1]  # 存储发送方ip和端口

# 3.打印接收到的数据
print("收到的信息是:%s \n收到的地址:%s" % (recv_msg.decode("gbk"), str(send_addr)))

def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定信息 这里绑定的数据是一个元组
udp_socket.bind(("", 1234))

# 循环处理收发数据
while True:
    print("-----xxx聊天器-----")
    print("1:发送消息")
    print("2:接收消息")
    print("0:退出系统")
    op = input("请输入需要执行的操作:")

    if op == "1":

        # 发送数据
        send_msg(udp_socket)

    elif op == "2":

        # 接收数据
        recv_msg(udp_socket)
    elif op == "0":
        print("退出系统聊天")
        break

    else:
        print("输入不正确请重新选择")

if name == “main”:
main()

你可能感兴趣的:(python使用socket实现双工通讯)