www.pudn.com > WuZiQi_src.rar > NetGame.java
package game; import java.net.*; import java.io.*; /** *Title: 五子棋
* *Description: 五子棋游戏
* *Copyright: Copyright (c) 2005
* *Company: David Company
* * @author David * @version 1.0 */ public class NetGame { String states; ServerSocket server; Socket socket; PrintWriter oWriter; BufferedReader oReader; int selectNet=0; //0 - 没有指定; 2 - server 3 - client public NetGame() { try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } private void jbInit() throws Exception { states=""; } //设置网络角色,//得到当前状态是 1、服务器 2、客户端 public void setSelectNet(int i){ this.selectNet=i; } public int getSelectNet(){ return selectNet; } //设置状态 、 得到状态 public void setStates(String str) { this.states=str; } public String getStates() { return this.states; } public boolean serverListen(int port){ try{ server = new ServerSocket(port); int localPort = server.getLocalPort(); this.states= "Client should connect to port "+ localPort; return true; }catch(Exception e){ this.states="Wrong." + e.getMessage(); return false; } } public boolean serverAccept() { try{ socket = server.accept(); states = "Client " + socket.getInetAddress().getHostName() + " is accepted." + "\n"; return true; }catch(Exception e){ this.states="Wrong." + e.getMessage(); return false; } } public boolean send(String str){ try{ /* 以下是使用 writeObject 做法,可是出现NotSerializableException异常,无法继续 oWriter = new ObjectOutputStream(socket.getOutputStream()); oWriter.writeObject(netinfo); oWriter.flush(); */ oWriter=new PrintWriter(socket.getOutputStream()); oWriter.write(str + "\n"); oWriter.flush(); return true; }catch(Exception e){ System.out.println("wrong" + e.toString()); return false; } } public String receive(){ try{ String str=new String(); /* 以下是使用 writeObject 做法,可是出现NotSerializableException异常,无法继续 oReader = new ObjectInputStream(socket.getInputStream()); netinfo=(NetInfo)oReader.readObject(); System.out.println("receive--> " + netinfo.getX()); */ oReader=new BufferedReader(new InputStreamReader(socket.getInputStream())); str=oReader.readLine(); return str; }catch(Exception e){ System.out.println("wrong" + e.toString()); return "null"; } } /* public boolean openServer(int port) { try { BufferedReader bufReader = new BufferedReader(new InputStreamReader(client.getInputStream())); PrintWriter prtWriter = new PrintWriter(client.getOutputStream()); System.out.println("Client port " + client.getPort()); prtWriter.println(" Welcome! You can say a line of words before disconnect."); prtWriter.flush(); System.out.println("Greeting message has been sent."); System.out.println("Client says:"); System.out.println(bufReader.readLine()); prtWriter.println("Bye."); prtWriter.flush(); bufReader.close(); prtWriter.close(); } catch (IOException ex) { System.out.println("IO exception occured!"); return false; } return true; } */ public boolean clientLink(String theServer,int port) { try{ socket = new Socket(theServer,port); states=" Destination - " + socket.getInetAddress().getHostName() + "\n"; states= states + "Local port - " + socket.getLocalPort() + "\n"; return true; }catch(Exception e){ System.out.println("wrong" + e.toString()); return false; } } /* public boolean clientSend(String str) { try{ prtWriter = new PrintWriter(clientSocket.getOutputStream()); prtWriter.println(str); prtWriter.flush(); //prtWriter.close(); return true; }catch(Exception e){ this.states="Wrong." + e.getMessage(); return false; } } public boolean clientReceive(){ try{ bufReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); states=bufReader.readLine(); if (states=="") states=" Null "; // bufReader.close(); return true; }catch(Exception e){ this.states="Wrong." + e.getMessage(); return false; } } */ /* public boolean openClient(String theServer,int port) { try { // BufferedReader kbdReader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader bufReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); System.out.println(bufReader.readLine()); System.out.println("Server Says: " + bufReader.readLine()); System.out.println("Disconnect"); clientSocket.close(); } catch (UnknownHostException ex) { System.out.println("Cannot connect destination host."); } catch (IOException ex) { System.out.println("IO exception occured."); } return true; } */ }