欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python while break try 无法中断_解码不能正常工作并且while循环不能正确中断python...

发布时间:2023/12/1 python 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python while break try 无法中断_解码不能正常工作并且while循环不能正确中断python... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这是一个使用Python中的TCP套接字的文件传输应用程序。文件传输协议将包含一个名为ftps.py文件一个客户打电话来ftpc.py文件. 在

文件传输应用程序将使用一个简单的协议。前4个字节(按网络字节顺序)将包含后续文件中的字节数。接下来的20个字节将包含文件的名称(假设名称可以容纳20个字节)。接下来的TCP流中的其余字节将包含文件中的数据。在

我在不同的计算机上运行客户机程序和服务器程序,但有两个错误:

1) 当我编码文件名并将其发送到套接字时,当服务器端接收并解码时,文件名是不正确的

2)服务器端似乎陷入了while循环,我不知道为什么

客户import socket

import sys

import os

filename=sys.argv[2]

print filename

if len(sys.argv) > 1 :

print('Trying to connect...')

s = socket.socket()

ip_add=(sys.argv[1])

print(ip_add)

s.connect((ip_add, 4000))

print('Connected. Wating for command.')

while True:

cmd = s.recv(24)

if cmd == 'getsize':

print('"getsize" command received.')

statinfo=os.stat(filename)

byte_size=statinfo.st_size

size_str=str(byte_size)

s.sendall(size_str)

if cmd == 'getfilename':

print('"getfilename" command received.')

formatted_name = filename.rjust(20)

fname = formatted_name.lstrip()

print(fname)

encoded_filename=fname.encode('utf-8')

s.sendall(encoded_filename)

if cmd == 'getfile':

print('"getfile" command received. Going to send file.')

file_input = open(sys.argv[2], 'rb')

while True:

buff = file_input.read(512)

if len(buff) == 0:

break

s.sendall(buff)

print('File transmission done.')

if cmd == 'end':

print('"end" command received. Teminate.')

break

file_input.close()

f.close()

服务器

^{pr2}$

以下是服务器程序的终端输出:% python ftps.py

Waiting for clinet to connect...

Connected. Going to receive file.

1797

Filename: 55

客户端输出:% python ftpc.py 164.107.113.20 2.jpg

2.jpg

Trying to connect...

164.107.113.20

Connected. Wating for command.

"getsize" command received.

"getfilename" command received.

2.jpg

"getfile" command received. Going to send file.

File transmission done.

文件名:55,应该是文件名:2.jpg

程序在这一点上陷入了一个循环。。有人知道为什么会这样吗?在

总结

以上是生活随笔为你收集整理的python while break try 无法中断_解码不能正常工作并且while循环不能正确中断python...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。