All pastes #402240 Raw Edit

ArrayServer.java

public text v1 · immutable
·published 2007-03-19 20:14 UTC
rendered paste body
import java.net.*;
import java.io.*;

public class ArrayServer {
	
	
	public static void main(String[] args) {
		
		int valid = 0;
		int recvd = 0;
		
		while(true) {
			
			
			if(args.length < 1){
			
				System.err.println("usage: java ArrayServer port");
				System.exit(1);
			}
			
			System.out.println("Server started");
			Socket conn = null;
			ServerSocket s = null;
			
			try {
		
				s = new ServerSocket(Integer.parseInt(args[0]));
				
				conn = s.accept();
			}
			catch(IOException e) {
				
				System.err.println("Socket could not be opened");
				System.exit(1);
				
			}
			
			byte[] data = new byte[1000000];
			
			InputStream raw = null;
			
			try {
				raw = conn.getInputStream();
			}
			catch(IOException e) {
				System.err.println("Couldnt get input");
				System.exit(1);
			}
			
			while(true) {
				
				if(conn.isClosed()) {
					break;
				}
				
				try{
					raw.read(data);
				}
				catch(IOException e) {
					System.err.println("Could not get input");
					System.exit(1);
				}
				
				
				System.out.println("Array " + (recvd + 1) + " recieved");
				boolean result = scan(data);
				
				if( result == true ) {
					valid++;
				}
				
				recvd++;
			
			
			}
			
			System.out.println("Recived " + recvd + " byte arrays.");
			System.out.println(valid + " arrays were valid.");
			
			try {
			
				conn.close();
				s.close();
			}
			catch(IOException e) {
				System.err.println("Error on closing connection");
				System.exit(1);
			}
			
			break;
			
			
		}
	}
	
	public static boolean scan(byte[] input) {
		
		boolean result = false;
		
		if( input.length >= 2 && input[0] == 0 ) {
			for(int i = 1; i < input.length; i++) {
				if( input[i] == 1 ) {
					continue;
				}
				else if( i == input.length - 1 && input[i] == 0 ) {
					result = true;
					break;
				}
				
				break;
			}
			
		}
		else
			return false;
			
		return result;
		
	}
}