0
我一直在网上搜索一段时间寻找答案。使用python客户端将数据发送到java服务器
用于发送文件的Python代码:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
with open(path, mode='rb') as f:
s.sendall(f.read())
用于接收所述数据的java代码:
private BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path))) {
while (true) {
int size = bis.read(by);
if (size > 0) {
bos.write(by, 0, size);
bos.flush();
total += size;
System.out.println(size + "(" + total + ")");
if (total == length) {
break;
}
}
}
}.....
我看到数据正被发送,并且我知道该数据是在在java结束的流。然而,bis.read(by)调用会挂起,并拒绝读取数据,直到连接数据死亡。
我怀疑它与java中的“flush”有关,但我找不到任何方式使用python做“flush”。
任何线索为什么会发生这种情况?