会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 1楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 3楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 5楼

客户端:

from socket import *
from threading import Thread

# 不停的接收
def recv_data():
    while True:
        redata = udp_socket.recvfrom(1024)
        recontent = redata[0].decode("gbk")
        print(f"收到远程信息:{recontent},from {redata[1]}")
        if redata == "88":
            print("聊天结束!")
            break

def send_data():
    addr = ("127.0.0.1",8986)
    while True:
        data = input("请输入:")
        udp_socket.sendto(data.encode("gbk"),addr)
        if data == "88":
            print("聊天结束!")
            break

if __name__ == '__main__':
    udp_socket = socket(AF_INET,SOCK_DGRAM)
    # 绑定接受信息的端口
    udp_socket.bind(("127.0.0.1",9896))
    # 创建两个线程
    t1 = Thread(target=recv_data)
    t2 = Thread(target=send_data)
    # 启动线程
    t1.start()
    t2.start()
    # 结束子线程,再结束主线程
    t1.join()
    t2.join()

服务端:

from socket import *
from threading import Thread

# 不停的接收
def recv_data():
    while True:
        redata = udp_socket.recvfrom(1024)
        recontent = redata[0].decode("gbk")
        print(f"收到远程信息:{recontent},from {redata[1]}")
        if redata == "88":
            print("聊天结束!")
            break

def send_data():
    addr = ("127.0.0.1",9896)
    while True:
        data = input("请输入:")
        udp_socket.sendto(data.encode("gbk"),addr)
        if data == "88":
            print("聊天结束!")
            break

if __name__ == '__main__':
    udp_socket = socket(AF_INET,SOCK_DGRAM)
    # 绑定接受信息的端口
    udp_socket.bind(("127.0.0.1",8986))
    # 创建两个线程
    t1 = Thread(target=recv_data)
    t2 = Thread(target=send_data)
    # 启动线程
    t1.start()
    t2.start()
    # 结束子线程,再结束主线程
    t1.join()
    t2.join()

问题:客户端发送“88”信号,本身能收到“聊天结束”,但是服务端却没有收到“聊天结束标志”!麻烦老师看下,是不是代码哪儿写错了!

image.pngimage.png并且客户端再次输入“88”,循环仍为结束!

image.png

Python 全系列/第三阶段:Python 网络与并发编程/网络通信 6楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 7楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 8楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 10楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 15楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637