Ok i got some wierd client server errors here that make no sense to me..well i have a theory but i have no idea how to fix it.
Here is the Cllient program:
Code:import java.io.*; import java.net.*; class ProbeClient{ public static void main(String args[]){ String msgIn; String msgOut; boolean transmit=true; String rockTypeArray[]={"s","ig"}; //simple array for rock type String rockType=""; int fluidFactor=0; //fluid factor //grid arrays //grid identifiers int gx1=1; int gx2=0; String gridAnalysis; while(transmit=true){ try { //get server port String server = args[0]; int port = Integer.parseInt(args[1]); //create socket Socket s = new Socket(server, port); PrintWriter n = new PrintWriter(new OutputStreamWriter( s.getOutputStream()),true); rockType=rockTypeArray[(int)(Math.random()*2)]; if(rockType.equals("s")){ fluidFactor=(int)(Math.random()*10+1); } if(gx1==8 && gx2==8){ System.out.println("The Sending of info is complete"); n.close();s.close(); break; } else if(gx1<8 && gx2==8){ gx1++;gx2=1; gridAnalysis=toString(gx1,gx2,rockType,fluidFactor); n.println(gridAnalysis); } else{ gx2++; gridAnalysis=toString(gx1,gx2,rockType,fluidFactor); n.println(gridAnalysis); } } catch(Exception e){ System.out.println("Exception: " + e); } } } public static String toString(int i, int j,String rock,int flF){ if(rock.equals("s")){ return "[" +i+","+j+"]"+rock+flF; } if(rock.equals("ig")){ return "[" + i+","+j+"]"+rock; } else{ return ""; } } }
And here is the Server
Code:import java.io.*; import java.net.*; import java.util.*; class ResultServer { public static void main(String args[]){ String message; int i=0; try { //get a port int port = Integer.parseInt(args[0]); //create server socket on specified port ServerSocket ss = new ServerSocket(port); System.out.println("Server is up and running, waiting for probe to connect"); while(true && i<64){ //create a socket as you accept incoming requests Socket s = ss.accept(); //write result to client BufferedReader y=new BufferedReader(new InputStreamReader( s.getInputStream())); PrintWriter output; output = new PrintWriter (new FileWriter("exploreData.txt")); String msgIn=y.readLine(); output.println(msgIn); System.out.println(msgIn); i++; if(i==63){ output.close(); y.close(); s.close(); System.out.println("Information has been store in file...Program Completed"); } } } catch(Exception e) { System.out.println("Exception: " + e); } } }
You will have to make an exploreData.txt file ..
I have no idea why it doesnt work.. it goes up to [4,5] and then quits as if it were [8,8].
I think the problem is that everytime i send a stream to the server it also sends some other line or something..(When u run it u see at the end in the server there is a bunch of blank lines) and therefore it thinks its been sent something else and it for every one it thinks its gone 2...
I need to fix this ASAP!!!!!!!!!!!!!!!
Thx for any help!!!!!!!!!!!!!!


Reply With Quote


Bookmarks