问答详情
源自:4-2 文件上传程序的拍错方法

直接把等待客户端连接那一句移动到while循环外面也可以吧?

直接把等待客户端连接那一句移动到while循环外面也可以吧?

# 导入模块
import socket

# 实例化模块
sk = socket.socket()

# 定义ip和port
ip_port = ("127.0.0.1", 9999)

# 绑定ip和port
sk.bind(ip_port)

# 最大连接数
sk.listen(5)

# 等待客户端连接
conn, address = sk.accept()

# 循环
while True:
    # 打开文件等待写入
    with open("file", "ab") as f:
        # 接受数据
        data = conn.recv(1024)
        # 判断是否接收完成
        if data == b'quit':
            break
        # 写入文件
        f.write(data)

# 关闭连接
sk.close()


提问者:不爱学习的小伙子 2018-10-25 21:36

个回答

  • 慕粉4333549
    2019-04-02 10:53:40

    也行,不过要是你这样处理的话,只能接收一个客户端的请求和处理后,服务器端的程序也就关闭了,没发处理多个请求了。

  • 0x0wh04m1
    2018-11-01 12:13:27

    写在外面的话,一个客户端发送一个文件之后,文件接收端程序就关闭了

    作者应该是想可以循环往复的接收文件吧,这是我个人理解。