扫描字符串文字时的EOL[在python套接字中]

扫描字符串文字时的EOL[在python套接字中],python,file,sockets,eol,Python,File,Sockets,Eol,我是一个新手,这是我关于stackoverflow的第一个问题,所以说,这是我的问题 客户端代码 服务器代码 当我在同一台计算机上传输文件时(甚至更大的文件,比如几GB,在这次测试中,我使用的是windows 7测试视频,大约是25MB),这种方法工作得非常好,但是当我在局域网上使用它传输同一文件时,在同一网络中的两台计算机之间,它显示了一个错误 就在这个声明期间 data = eval(data) 错误是,在打印了如此多的字符行之后,如\xo。。。和空行 EOL while scanning

我是一个新手,这是我关于stackoverflow的第一个问题,所以说,这是我的问题

客户端代码

服务器代码

当我在同一台计算机上传输文件时(甚至更大的文件,比如几GB,在这次测试中,我使用的是windows 7测试视频,大约是25MB),这种方法工作得非常好,但是当我在局域网上使用它传输同一文件时,在同一网络中的两台计算机之间,它显示了一个错误

就在这个声明期间

data = eval(data)
错误是,在打印了如此多的字符行之后,如\xo。。。和空行

EOL while scanning string literal         ^
使用pickle也会产生错误


谢谢你阅读。。。请帮忙

.recv()
的参数仅仅是要返回的最大字节数-它将返回网络缓冲区中当前可用的数据量,最大可达该长度。因此,您通常需要在一个循环中调用它,直到接收到整个数据。(请注意,您发送数据之前的长度的方案(甚至可以这样做)并不像编写的那样有效-第一个
.recv()
可能会返回长度和实际数据中的某些字节数。该长度需要具有固定的大小,或者后跟一个终止符。)感谢您的时间@jasonharper,正如您所说,我试图通过填充等于标头长度的大小来使消息长度相同,但实际上没有发生任何变化,它在一个系统内(同一台机器上的服务器和客户端)运行完全正常,但在LAN中的不同机器上显示相同的错误,再次感谢您的帮助。
.recv()
的参数只是要返回的最大字节数-它将返回网络缓冲区中当前可用的任意数据量,最大长度为该长度。因此,您通常需要在一个循环中调用它,直到接收到整个数据。(请注意,您发送数据之前的长度的方案(甚至可以这样做)并不像编写的那样有效-第一个
.recv()
可能会返回长度和实际数据中的某些字节数。该长度需要具有固定的大小,或者后跟一个终止符。)感谢您的时间@jasonharper,正如您所说,我试图通过填充等于标头长度的大小来使消息长度相同,但实际上没有任何改变,它在一个系统内(同一台机器上的服务器和客户端)运行完全正常,但在局域网中的不同机器上显示相同的错误,再次感谢您的帮助。。。
data = eval(data)
EOL while scanning string literal         ^