idle练习简单的 udp 网络编程之显示接收信息

背景:

win8.1, python 3.9.7及自带的idle, pycharm 2021.3.1, vs code 1.64.2, 网络助手5.0.2

现象:

idle练习网络编程之显示接收信息时:

>>在用idle发送信息给网络助手时,没有问题,即时接收;

>>用网络助手给idle发送信息时,idle没有(自动)反应

解释:

结论是,需要在idle中连续按键盘的“enter”键2次,idle才会显示接收的信息。期间,idle还是可以正常发送信息。具体讲图片中的“步骤”注释。

在pycharm 和 vs code中,都可以和"网络助手"相互自动互动,即彼此在对方发送信息后,自动显示接收的信息。

代码如下:

from socket import socket, AF_INET, SOCK_DGRAM
from threading import Thread


# 创建连接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 绑定端口
udp_socket.bind(("",8989)) # 防止网络助手在多次运行时,随机配置端口

# 接收数据
def recv_fun():
    while True:
        recv_data = udp_socket.recvfrom(4096)
        recv_info = recv_data[0].decode("gb2312")
        print(">>接收到的信息:", recv_info)
        if recv_info == "stop":
            break
        

# 发送数据
def send_fun():
    while True:
        addr = ("192.168.137.1",8080)
        data = input("<<发送的信息:")
        send_info = udp_socket.sendto(data.encode("gb2312"),addr)
        
        #print("发送的信息:", send_info)
        #if send_info == "stop":
        #    break


if __name__ == "__main__":
    #创建接受和发送线程
    t1 = Thread(target=send_fun)
    t2 = Thread(target=recv_fun)
    t1.start()
    t2.start()
    t1.join()
    t2.join()

udp_socket.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值