2つのスレッドを使用してデータファイルを送受信する小さなプログラムをJavaで作成しました。2つのスレッドを同じクラスに入れたい。一方のスレッドはファイルを送信し、もう一方のスレッドはファイルを受信します。私はそのためのコードを書きましたが、エラーはほとんどありません。コードのエラーを理解するのを手伝ってくれませんか。私はJavaの学生であり初心者なので、ばかげた間違いがあれば私を惜しまないでください。
import java.lang.Thread.*;
import java.io.*;
public class sendques implements Runnable
{
int i=0,c;
static Thread[] t= new Thread[2];
FileInputStream fis=new FileInputStream("ip.jpg");
FileOutputStream fos=new FileOutputStream("output.jpg");
sendques() {
for(i=0;i<2;i++){
t[i]=new Thread(this);
t[i].start();
System.out.println("Threads "+i);
}
}
void run() {
while(true) {
wait();
send();
}
}
void send() {
while((c=fis.read())!=-1) {
t[2].receive(c);
wait();
}
}
void receive(int d) {
while(c!=-1) {
fos.write(d);
t[1].notify();
}
}
public static void main(String arg[]) {
sendques sq=new sendques();
t[1].send();
System.out.println("Quiting..");
}
}