私はしばらくウェブを検索しており、これに対する答えを探しています。
ファイルを送信するための 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の「フラッシュ」と関係があると思われますが、Pythonを使用して「フラッシュ」を行う方法が見つかりません。
なぜこれが起こるのか手がかりはありますか?