2015-04-16 4 views
0

Я не могу найти проблему с кодом, но на сервере ничего не отображается. Он отображает улов. Клиент кажется find, и он устанавливает имя и счет игроков и отправляет его, но я не могу найти проблему на этом, почему сервер не отображает имя и оценку.Отправка объекта хосту от клиента

Вот мой клиент:

public class Client 
{ 
    private static final int BUFSIZE = 64; 
    public static void main(String[] args) throws IOException 
    { 

    try 
    { 
        int scores; 
        Scanner in = new Scanner(System.in); 
        Socket clntSock = new Socket("127.0.0.1", 6000); 
        System.out.println("What is the filename?"); 
        String input = in.nextLine(); 
        Scanner fileInput = new Scanner(new File(input)); 
        ObjectOutputStream out = new 
        ObjectOutputStream(clntSock.getOutputStream()); 

        Player playerObject = new Player(); 

        playerObject.setName(fileInput.nextLine()); 
        System.out.println(""+playerObject.getName()); 

        for (int i = 0; i < 5; i++) 
        { 
         scores = Integer.parseInt(fileInput.nextLine()); 
         playerObject.setScore(scores); 

        System.out.println(""+playerObject.getScores().get(i)); 
        } 

        out.writeObject(playerObject); 




        in.close(); 
        fileInput.close(); 
        out.close(); 
        clntSock.close(); 

       } 
       catch (UnknownHostException ex) 
       { 
       System.out.println("Unknown host"); 
       } 

    } 
} 

и мой хост:

public class Host 
{ 

private static final int BUFSIZE = 64; 
public static void main(String[] args) throws IOException 
{ 
    // Step 1: Create a ServerSocket. 
    ServerSocket servSock = new ServerSocket(6000); 
    PrintStream fileOut = new PrintStream("Datafromclient.txt"); 

    try 
    { 
     // Step 2: Wait for a connection.. 
     Socket clntSock = servSock.accept(); 
     // Step 3: Get input and output streams. 
     System.out.println("Step 3: Get object input stream.,"); 

     ObjectInputStream objectIn = new 
     ObjectInputStream(clntSock.getInputStream()); 

     Player playerObjct = (Player)objectIn.readObject(); 

     System.out.println("The name of Player: "+playerObjct.getName()); 

     for(int i=0; i <5; i++) 
     { 
     System.out.println("Scores:"+playerObjct.getScores().get(i)); 
     } 

     objectIn.close(); 
     clntSock.close(); 
     // Step 5: Close connection 
     objectIn.close(); 
     clntSock.close(); 
    } 
    catch (ClassNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
     catch (IOException e) 
    { 
     System.err.println(e); 
    } 

    } 
} 

Мой класс игрок:

public class Player 

private String name; 
private int playerId; 
private int bestScore; 
private static int numberOfPlayers = 0; 
private ArrayList<Integer> scores = new ArrayList<Integer>(); 

/* -------------- CONSTRUCTOR -------------------------------------- 
*/ 
public Player() 
{ 

    numberOfPlayers++; 
    playerId = numberOfPlayers; 

} 
public Player(String name) 
{ 
    this.name = name; 


} 

//Create set method for setName 
public void setName(String name) 
{ 
    this.name = name; 
} 

//Create set method for setScores 
public void setScore(int score) 
{ 
    scores.add(score); 
} 

//Create get method for getPlayerId 
public int getPlayerId() 
{ 
    return this.playerId; 
} 

//Create get method for getName 
public String getName() 
{ 
    return this.name; 
} 

//Create get method for getScores 
public ArrayList<Integer> getScores() 
{ 
    return scores; 
} 

//Create get method for getBestScore 
public int getBestScore() 
{ 
    calculateBestScore(); 
    return bestScore; 
} 

//Method to expose the value of numberOfPlayers 
public static int getNumberOfPlayers() 
{ 
    return numberOfPlayers; 
} 

//Create get method for calcualteAverage 
public double calculateAverage() 
{ 
    Integer sum = 0; 
    if(!scores.isEmpty()) 
    { 
     for(Integer score : scores) 
     { 
      sum += score; 
     } 
     return sum.doubleValue()/scores.size(); 
    } 
    return sum; 

} 
public void calculateBestScore() 
{ 
    bestScore = Collections.max(scores); 
} 

} 

ответ

0

я пропускал

import java.io.Serializable; 
public class Player implements Serializable 

сейчас его работы.

Смежные вопросы