socket编程_文件上传下载_有点儿问题待解决

本文探讨了Python Socket编程中,客户端发送包含'quit'指令的数据包时,服务器端无法正确识别并退出的问题。详细分析了问题所在,并提出了有效的解决方案。

服务器端:
这里有问题,客户端发送的1024字节中带有quit的话,这里识别不了.
有解决办法的大神留言解决一下,非常感谢.

import socket

# 实例化
sk = socket.socket()

ip_port = ('127.0.0.1', 9999)
#绑定端口
sk.bind(ip_port)
#监听数量
sk.listen(5)

while True:
    conn, address = sk.accept()
    with open("file_bak", "ab") as f:
        data = conn.recv(1024)
        print(data.decode())

        if data == b"quit": #接收过来的是一串,不单单是quit.怎么识别当中的quit呢
            break

        f.write(data)


print('正在关闭服务...')
sk.close()

客户端:

import socket

# 实例化
import time

sk = socket.socket()

# ip和端口
ip_port = ('127.0.0.1',9999)
#连接
sk.connect(ip_port)

# 文件上传
# 打开文件
with open('file_1', 'rb') as f:
    # 数据分割
    for i in f:
        # 上传
        sk.send(i)

sk.send('quit'.encode()) #文章提的问题就在这,紧挨着上面的send发送了quit指令,拼成了一串,服务器端的关闭就无效了.
print('已发送关闭指令')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值