public void windowClosing(WindowEvent e) // write file on finish { FileOutputStream out = null; ObjectOutputStream data = null; try { // open file for output out = new FileOutputStream(DB); data = new ObjectOutputStream(out); // write Person objects to file using iterator class Iterator<Person> itr = persons.iterator(); while (itr.hasNext()) { data.writeObject((Person) itr.next()); } data.flush(); data.close(); } catch (Exception ex) { JOptionPane.showMessageDialog( objUpdate.this, "Error processing output file" + "\n" + ex.toString(), "Output Error", JOptionPane.ERROR_MESSAGE); } finally { System.exit(0); } }
/** Start talking to the server */ public void start() { String codehost = getCodeBase().getHost(); if (socket == null) { try { // Open the socket to the server socket = new Socket(codehost, port); // Create output stream out = new ObjectOutputStream(socket.getOutputStream()); out.flush(); // Create input stream and start background // thread to read data from the server in = new ObjectInputStream(socket.getInputStream()); new Thread(this).start(); } catch (Exception e) { // Exceptions here are unexpected, but we can't // really do anything (so just write it to stdout // in case someone cares and then ignore it) System.out.println("Exception! " + e.toString()); e.printStackTrace(); setErrorStatus(STATUS_NOCONNECT); socket = null; } } else { // Already started } if (socket != null) { // Make sure the right buttons are enabled start_button.setEnabled(false); stop_button.setEnabled(true); setStatus(STATUS_ACTIVE); } }
// Utility methods // Send message to client private void sendMessage(String message) { try { output.writeObject("KELVIN: " + message); output.flush(); showMessage("\nKELVIN: " + message); } catch (IOException ioException) { chatWindow.append("\n ERROR: CANNOT SEND MESSAGE! \n"); } }
/** * sends a message to the server, and to the other clients * * @param message: message to be sent */ public void sendMessage(String message) { try { System.out.println("Sending a message..." + message); toChatServer.writeObject(new String(message)); toChatServer.flush(); } catch (IOException e) { System.out.println("IOException in sendMessage"); System.err.println(e); System.exit(1); } }
private void saveObject(Object obj, String fName) { try { FileOutputStream fos = new FileOutputStream(fName); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(obj); oos.flush(); oos.close(); fos.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(this, "Problemos saugojant Objektus"); } }
public void mouseClicked(MouseEvent e) { /*can = false; boolean f = true; for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) if (cell[i][j] == e.getSource()) { int judege = Clicked(cell[i][j]); f = false; break; } if (!f) break; }*/ boolean flage = CheckAll(); if (flage) { can = false; if (kind.equals("" + turn)) { ChessBoard cel = (ChessBoard) (e.getSource()); int judge = Clicked(cel); if (judge == 1) { try { System.out.println("发送前:" + cell[3][5].taken); out66.writeObject("落子" + turn); out66.flush(); out66.writeObject(stateList.get(stateList.size() - 1)); out66.flush(); out66.writeObject(takenList.get(takenList.size() - 1)); out66.flush(); } catch (IOException e1) { e1.printStackTrace(); } } } else { JOptionPane.showMessageDialog(null, "请确定您的身份,您此时不能落子"); } } else CheckAtTheEnd(); }
public static byte[] object2ByteArray(Object obj) throws java.io.IOException { /* * http://www.javafaq.nu/java-article236.html * http://stackoverflow.com/questions/2836646/java-serializable-object-to-byte-array */ ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(obj); oos.flush(); oos.close(); bos.close(); byte[] data = bos.toByteArray(); return data; }
/** * run will be exicuted when the thread is called, and will connect to the server and start * communicating with it. */ public void run() { WaitForConnection wfc = new WaitForConnection("Waiting For Connection"); m_OldWindow.setEnabled(false); try { m_Socket = new Socket(m_IP, m_Port); // System.out.println("Connecting to ChatService..."); m_ChatSocket = new Socket(m_IP, m_Port); // System.out.println("\nConnected to ChatService..."); wfc.updateMessage("Waiting For Other Players"); // System.out.println("Getting OutputStream Stream From server..."); toServer = new ObjectOutputStream(m_Socket.getOutputStream()); toChatServer = new ObjectOutputStream(m_ChatSocket.getOutputStream()); toChatServer.flush(); // System.out.println("Getting Input Stream From server..."); fromServer = new ObjectInputStream(m_Socket.getInputStream()); fromChatServer = new ObjectInputStream(m_ChatSocket.getInputStream()); m_ChatService = new ChatService(); m_ChatServiceThread = new Thread(m_ChatService); m_ChatServiceThread.start(); m_MultiPlayerMenu.startGame(); wfc.dispose(); m_OldWindow.dispose(); } catch (java.net.ConnectException e) { wfc.dispose(); MenuWindow menu = new MenuWindow(new JFrame("")); JOptionPane.showMessageDialog(menu.getMainFrame(), "Error Connection refused"); m_OldWindow.setEnabled(true); } catch (IOException ex) { System.err.print(ex); } }
/** * Methode de connection avec le serveur * * @return * @throws IOException */ public boolean serverConnection() throws IOException { boolean ok = false; // créer la connexion au serveur, ainsi que les flux uniquement si elle n'est pas active if (comm == null) { try { // Récupération de l'adresse du serveur comm = new Socket(textServerIP.getText(), 12345); oos = new ObjectOutputStream(comm.getOutputStream()); ois = new ObjectInputStream(comm.getInputStream()); // envoyer le pseudo du joueur oos.writeObject(textPseudo.getText()); oos.flush(); // lire un booléen -> ok ok = true; } catch (IOException e) { System.out.println("problème de connexion au serveur : (JungleIG)" + e.getMessage()); System.exit(1); } } return ok; }
public void actionPerformed(ActionEvent e) { if (e.getSource() == butConnect) { try { boolean ok = serverConnection(); if (ok) { setInitPanel(); } else { System.out.println("Le pseudo existe déjà, choisissez en un autre."); } } catch (IOException err) { System.err.println( "Problème de connection avec le serveur: " + err.getMessage() + "\n.Arrêt..."); System.exit(1); } } else if (e.getSource() == butListParty) { try { // envoyer requête LIST PARTY oos.writeInt(JungleServer.REQ_LISTPARTY); oos.flush(); // recevoir résultat et l'afficher dans textInfoInit System.out.println("flush"); boolean pret = ois.readBoolean(); System.out.println(pret); if (pret) { String nomParty = (String) ois.readObject(); System.out.println("apres read"); textInfoInit.append(nomParty + " "); } } catch (ClassNotFoundException err) { } catch (IOException err) { System.err.println( "Problème de connection avec le serveur: " + err.getMessage() + "\n.Arrêt..."); System.exit(1); } } else if (e.getSource() == butCreateParty) { try { boolean ok; // envoyer requête CREATE PARTY (paramètres : nom partie et nb joueurs nécessaires) oos.writeInt(JungleServer.REQ_CREATEPARTY); oos.writeObject(textCreate.getText()); int nbJoueurs = (Integer) spinNbPlayer.getValue(); oos.writeInt(nbJoueurs); oos.flush(); // recevoir résultat -> ok ok = ois.readBoolean(); System.out.println(ok); // si ok == true : if (ok) { // mettre le panneau party au centre setPartyPanel(); // afficher un message dans textInfoParty comme quoi il faut attendre le début de partie textInfoParty.append("Attendre le début de la partie"); // créer un ThreadClient et lancer son exécution ThreadClient threadClient = new ThreadClient(this); threadClient.start(); } } catch (IOException err) { System.err.println( "probleme de connection serveur : " + err.getMessage() + "\n.Aborting..."); System.exit(1); } } else if (e.getSource() == butJoinParty) { try { int idPlayer; // envoyer requête JOIN PARTY (paramètres : numero partie) oos.writeInt(JungleServer.REQ_JOINPARTY); oos.flush(); System.out.println("requete envoyée"); int numPartie = Integer.parseInt(textJoin.getText()); oos.writeInt(numPartie); oos.flush(); System.out.println("numPartie flushé"); // recevoir résultat -> idPlayer idPlayer = ois.readInt(); System.out.println("idplayer reçu : " + idPlayer); // si idPlayer >= 1 : if (idPlayer >= 1) { // mettre le panneau party au centre setPartyPanel(); // afficher un message dans textInfoParty comme quoi il faut attendre le début de partie textInfoParty.append("Attendre la début de la partie"); // créer un ThreadClient et lancer son exécution System.out.println("avant démarrage du thread"); ThreadClient threadClient = new ThreadClient(this); threadClient.start(); System.out.println("Apres le thread"); } } catch (IOException err) { System.err.println("Problème de connection serveur: " + err.getMessage() + "\n.Arrêt..."); System.exit(1); } } else if (e.getSource() == butPlay) { try { // envoyer requête PLAY (paramètre : contenu de textPlay) oos.writeInt(JungleServer.REQ_PLAY); oos.writeObject(textPlay.getText()); oos.flush(); orderSent = true; butPlay.setEnabled(false); textPlay.setEnabled(false); // mettre orderSent à true // bloquer le bouton play et le textfiled associé } catch (IOException err) { System.err.println("Problème connection serveur: " + err.getMessage() + "\n.Arrêt..."); System.exit(1); } } else if (e.getSource() == butQuit) { try { oos.close(); ois.close(); setConnectionPanel(); comm = null; } catch (IOException err) { System.err.println("Problème connection serveur: " + err.getMessage() + "\n.Arrêt..."); System.exit(1); } } }
@Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("下棋")) { audience.setEnabled(false); fighter.setEnabled(false); begin.setEnabled(true); // JOptionPane.showMessageDialog(null, "下棋"); System.out.println("下棋"); try { System.out.println("客户端发送下棋指令"); out66.writeObject("对手"); out66.flush(); out66.writeObject(new char[0][0]); out66.flush(); out66.writeObject(new boolean[0][0]); out66.flush(); } catch (IOException e1) { e1.printStackTrace(); } } if (e.getActionCommand().equals("观看")) { submit.setEnabled(false); regret.setEnabled(false); audience.setEnabled(false); fighter.setEnabled(false); // JOptionPane.showMessageDialog(null, "观看"); System.out.println("观看"); try { out66.writeObject("观众"); out66.flush(); out66.writeObject(stateList.get(stateList.size() - 1)); out66.flush(); out66.writeObject(takenList.get(takenList.size() - 1)); out66.flush(); } catch (IOException e1) { e1.printStackTrace(); } } /*if (e.getActionCommand().equals("人机对弈")) { audience.setEnabled(false); fighter.setEnabled(false); AIPlayer.setEnabled(false); begin.setEnabled(true); JOptionPane.showMessageDialog(null, "人机对弈"); }*/ if (e.getActionCommand().equals("发送")) { // JOptionPane.showMessageDialog(null, "发送"); System.out.println("发送"); String str = myRole + ": " + " " + jt1.getText() + "\n"; try { out99.writeObject(" " + str); out99.flush(); out99.writeObject(new char[8][8]); out99.flush(); out99.writeObject(new boolean[8][8]); out99.flush(); } catch (IOException e1) { e1.printStackTrace(); } jt2.append(str); jt1.setText(""); } if (e.getActionCommand().equals("取消")) { // JOptionPane.showMessageDialog(null, "取消"); System.out.println("取消"); jt1.setText(""); } if (e.getActionCommand().equals("悔棋")) { // JOptionPane.showMessageDialog(null, "悔棋"); System.out.println("悔棋"); try { out66.writeObject("请求悔棋"); out66.flush(); out66.writeObject(new char[8][8]); out66.flush(); out66.writeObject(new boolean[8][8]); out66.flush(); } catch (IOException e1) { e1.printStackTrace(); } // RegretChess(); // ShowChessNumber(); } if (e.getActionCommand().equals("退出")) { int quit = JOptionPane.showConfirmDialog(null, "您确定要强制退出吗?", "请确认您的选择", JOptionPane.YES_NO_OPTION); if (quit == JOptionPane.YES_OPTION) { JOptionPane.showMessageDialog(null, "已强制退出"); System.exit(0); } else return; } if (e.getActionCommand().equals("开始")) { begin.setEnabled(false); System.out.println("客户端发送开始指令"); // JOptionPane.showMessageDialog(null, "开始"); try { out66.writeObject("请求开始"); out66.flush(); out66.writeObject(stateList.get(stateList.size() - 1)); out66.flush(); out66.writeObject(takenList.get(takenList.size() - 1)); out66.flush(); } catch (IOException e1) { e1.printStackTrace(); } Begin(); if (kind == "黑") { for (int i = 0; i < 8; i++) for (int j = 0; j < 8; j++) if (cell[i][j].taken == false) { CheckPlace(cell[i][j]); if (canPut) { cell[i][j].ChangeBackground(); canPut = false; } } } } if (e.getActionCommand().equals("存盘")) { // JOptionPane.showMessageDialog(null, "存盘"); System.out.println("存盘"); try { System.out.println(); out.writeObject(stateList); out.flush(); out.close(); } catch (IOException e1) { e1.printStackTrace(); } } }
// set up streams private void setupStreams() throws IOException { output = new ObjectOutputStream(connection.getOutputStream()); output.flush(); input = new ObjectInputStream(connection.getInputStream()); showMessage("\n Streams set up \n"); }