学习笔记(07):Python网络编程&并发编程-客户端与服务端代码bug修复

立即学习:https://edu.csdn.net/course/play/24458/296236?utm_source=blogtoedu

1.修复端口被占用的bug

import socket

phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)


#修复重复多次运行程序断就被占用的bug,在绑定端口前设置
phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

phone.bind(('127.0.0.1',8080))

......

2.修复客户端发送空字符串,服务器一直处于等待状态的bug,判断是否为空,是则跳过本次循环进入下次循环,不为空则执行

......

msg = input("请输入:")

    #修复客户端发送空字符串而服务器卡在接收信息处的bug,continue表示跳出本次循环,重新开始下一次的循环
    if not msg:continue
    phone.send(msg.encode('utf-8'))
   
    res = phone.recv(1024)

......
   

3.修复客户端单方面关闭时,服务器会报错的bug,这里指的是windows会报错,Linux系统服务器会无限循环

......

while True:
    #解决客户端单方面关闭而服务器还在等待时会报ConnectionResetError错误的bug
#利用try....except....
    try:
        data = conn.recv(1024)#1024表示接收的字节最大量是1024bytes
        print('这是客户端的请求数据',data)

        #2)处理接收的请求后,发送数据send()
        #将客户端发送来的小写字母经过大写处理后发送返回给客户端
        conn.send(data.upper())

    except ConnectionResetError:
        break

.......

Linux系统直接用if not data:break语句即可解决

发布了39 篇原创文章 · 获赞 11 · 访问量 427

猜你喜欢

转载自blog.csdn.net/qq_45769063/article/details/104710083