私はtftpクライアントをプログラミングしていますが、デフォルトのブロックサイズ(512)を使用している限り、問題なく動作します。しかし、それは学校の課題なので、1430と4300のブロックサイズでもテストする必要があります。
サーバーと最初に通信するときは、次の方法を使用します。
public void setFilename( String s, String mode) {
byte []a = s.getBytes();
int i,j,k;
for ( i=0; i+2<lenght && i<a.length; i++ ) {
packet[i+2] = a[i];
}
packet[i+2] = 0;
a = mode.getBytes();
for ( j=0,i++; i<lenght && j<a.length; i++,j++ ) {
packet[i+2] = a[j];
}
packet[i+2] = 0;
}
読みたいファイル名を設定します。そしてそれはうまく機能します。
しかし、ブロックサイズを定義できるように変更しました。
public void setFilename( String s, String mode, String blockSize ) {
byte []a = s.getBytes();
int i,j,k;
for ( i=0; i+2<lenght && i<a.length; i++ ) {
packet[i+2] = a[i];
}
packet[i+2] = 0;
a = mode.getBytes();
for ( j=0,i++; i<lenght && j<a.length; i++,j++ ) {
packet[i+2] = a[j];
}
packet[i+2] = 0;
a = BLOCKSIZE.getBytes();
for ( k=0,i++; i<lenght && k<a.length; i++,k++ ) {
packet[i+2] = a[k];
}
packet[i+2] = 0;
a = blockSize.getBytes();
for ( k=0,i++; i<lenght && k<a.length; i++,k++ ) {
packet[i+2] = a[k];
}
packet[i+2] = 0;
}
ここで、BLOCKSIZE = "blksize"(文字列)およびblockSize = 1430(int); 問題は、それが機能しないことです:-/
誰かがブロックサイズを定義する方法を教えてもらえますか?
君たちありがとう :-)