السلام عليكــم ورحمـة الله وبركاتــه
الله يسعد اللي يساعدني ويفرج همه ويفتح له ابواب الرزق والخير في وجهه
فيه ايرور يطلع لي لما اعمل رن للكود
ماني عارفه ايش المشكله في الكود ياليت تساعدوني
وجزاكم الله كل خير
import java.io.*;
import java.util.*;
import java.util.Random;
import java.io.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
class datagram {
int header[][]=new int [11][32];
char data[]=new char [2400];
}
class fragments {
int header[][]=new int [11][32];
char data[]=new char [696];
}
class dataFrag {
static int MTU=720;
static int pointer=0;
datagram dataG;
fragments f1;
fragments f2;
fragments f3;
fragments f4;
void header_build(){
// fill VERS=4 IPv4 (0100)----------------
dataG.header[0][0]=0;
dataG.header[0][1]=1;
dataG.header[0][2]=0;
dataG.header[0][3]=0;
// fill header length HLEN=11 ( 5 for header + 6 optine ) --------
dataG.header[0][4]=1;
dataG.header[0][5]=0;
dataG.header[0][6]=1;
dataG.header[0][7]=1;
// fill type of servese --------------------------------------
// Percedence =5 ,D=1 ,T=1,R=1---------------
dataG.header[0][8]=1;
dataG.header[0][9]=0;
dataG.header[0][10]=1;
dataG.header[0][11]=1;
dataG.header[0][12]=1;
dataG.header[0][13]=1;
for(int j=14;j<16;j++)
dataG.header[0][j]=0;
//fill total length -------------------------------------------
// total length = (11 * 4 ) + 2400 = 2444 -------------------
String by = Integer.toBinaryString(2444);
int b=by.length();
for(int i=0;i<b;i++){
if(by.charAt(i)=='1')
dataG.header[0][i+16]=1;
else
dataG.header[0][i+16]=0;
}
// fill ID /// ID=2 ,binary= 0000000000000010
for(int i=0;i<14;i++){
dataG.header[1]=0;
}
dataG.header[1][14]=1;
dataG.header[1][15]=0;
// fill flags
dataG.header[1][16]=0;
dataG.header[1][17]=0;
dataG.header[1][18]=0;
// fill fragment offset ----------------------------
for(int i=0;i<13;i++)
dataG.header[1][19+i]=0;
// fill TTL= 3 sec
for(int i=0;i<6;i++){
dataG.header[2]=0;
}
dataG.header[2][6]=1;
dataG.header[2][7]=1;
// fill protocol TCP=6
dataG.header[2][8]=0;
dataG.header[2][9]=0;
dataG.header[2][10]=0;
dataG.header[2][11]=0;
dataG.header[2][12]=0;
dataG.header[2][13]=1;
dataG.header[2][14]=1;
dataG.header[2][15]=0;
// fill
//fill source IP ADDRESS and destination address
Random randomNumbers = new Random();
for(int i=3;i<5;i++)
for(int j=0;j<32;j++)
{
dataG.header[j]=randomNumbers.nextInt( 2 );
}
// fill option
// optine copy =0 ,option class =0 , optine number =5
for(int i=0;i<5;i++)
dataG.header[5]=0;
dataG.header[5][5]=1;
dataG.header[5][6]=0;
dataG.header[5][7]=1;
//optine length 3 + 4 * 5 =23
for(int i=8;i<3;i++)
dataG.header[5]=0;
dataG.header[5][11]=1;
dataG.header[5][12]=0;
for(int i=13;i<3;i++)
dataG.header[5]=0;
// pointer =0 the point to the first IP addrss
int k;
for(int i=0;i<8;i++)
{ k=16+i;
dataG.header[5][k]=0;
}
// fill padding
for(int i=24;i<32;i++)
{
dataG.header[10]=0;
}
// fill 5 IP adress options for routers
for(int i=6;i<10;i++)
for(int j=0;j<32;j++)
{
dataG.header[j]=randomNumbers.nextInt( 2 );
}
for(int i=24;i<32;i++)
dataG.header[5]=randomNumbers.nextInt( 2 );
for(int i=0;i<24;i++)
dataG.header[10]=randomNumbers.nextInt( 2 );
} // build header end
void print(){
for(int i=0;i<11;i++)
for(int j=0;j<32;j++)
{
System.out.println(dataG.header[j]);
}
}
}
public class MainClass1{
public static void main (String[] args) {
dataFrag me=new dataFrag();
me.header_build();
me.print();
}
}