FROM:http://www.java2000.net/viewthread.jsp?tid=686 1 服务器端程序,接受连接并处理客户端的请求 ServerApp.java package test; import java.io. * ; import java.net. * ; /** */ /** * 服务器端程序 * * @author luxuan310,修正赵学庆。 * */ public class ServerApp ... { static final int PORT = 9000 ; private ServerSocket serverSocket; private Socket socket; private BufferedReader netIn; private PrintWriter netOut; public ServerApp() throws IOException ... { serverSocket = new ServerSocket(PORT); System.out.println( " server start " ); while ( true ) ... { // 等待连接 socket = serverSocket.accept(); ServerThread st = new ServerThread(socket); new Thread(st).start(); } } class ServerThread implements Runnable ... { private Socket socket; private int randomNumber; private int clientGuessNumber; public ServerThread(Socket s) throws IOException ... { socket = s; netIn = new BufferedReader( new InputStreamReader(socket.getInputStream())); netOut = new PrintWriter(socket.getOutputStream()); } public void run() ... { System.out.println( " client " + socket.getInetAddress() + " is connect " ); randomNumber = ( int ) (Math.random() * 100 ); System.out.println( " random number is: " + randomNumber); try ... { clientGuessNumber = Integer.parseInt(netIn.readLine()); System.out.println( " client guess number is: " + clientGuessNumber); for ( int i = 3 ; i > 0 ; i -- ) ... { if (clientGuessNumber == randomNumber) ... { netOut.println( " OK,恭喜,猜对了 " ); ClientApp.finished = true ; } else if (clientGuessNumber < randomNumber) ... { netOut.println( " 您猜的数小了,您还有 " + (i - 1 ) + " 次机会 " ); ClientApp.finished = false ; } else if (clientGuessNumber > randomNumber) ... { netOut.println( " 您猜的数大了,您还有 " + (i - 1 ) + " 次机会 " ); ClientApp.finished = false ; } netOut.flush(); if ( ! ClientApp.finished) ... { clientGuessNumber = Integer.parseInt(netIn.readLine()); } else ... { break ; } } if ( ! ClientApp.finished) ... { netOut.println( " OK,您没有机会了,游戏结束 " ); } ClientApp.finished = true ; } catch (IOException e) ... { } finally ... { try ... { netOut.close(); netIn.close(); socket.close(); } catch (IOException ee) ... { } } } } public static void main(String[] args) throws IOException ... { new ServerApp(); } } 2 客户端程序,发送每次猜的数字 package test; import java.io. * ; import java.net. * ; public class ClientApp ... { private Socket socket; private BufferedReader netIn; private PrintWriter netOut; private BufferedReader keyboardIn; static Boolean finished = false ; public ClientApp() throws IOException ... { System.out.println( " 请输入服务器地址,连接本地服务器请输入localhost " ); keyboardIn = new BufferedReader( new InputStreamReader(System.in)); try ... { if (keyboardIn.readLine().equalsIgnoreCase( " localhost " )) ... { socket = new Socket(InetAddress.getLocalHost(), ServerApp.PORT); } else ... { socket = new Socket(InetAddress.getByName(keyboardIn.readLine()), ServerApp.PORT); } netIn = new BufferedReader( new InputStreamReader(socket.getInputStream())); netOut = new PrintWriter(socket.getOutputStream()); } catch (UnknownHostException e) ... { System.err.println( " 连接不到服务器 " ); System.exit( - 1 ); } System.out.println( " 连接成功 " ); while ( ! finished) ... { System.out.println( " 请输入0-100之间的数字 " ); netOut.println(keyboardIn.readLine()); netOut.flush(); String str = netIn.readLine(); if (str == null ) ... { finished = true ; break ; } System.out.println(str); if (str.startsWith( " OK " )) ... { finished = true</ Java多线程Socket操作猜数游戏样例 更多文章、技术交流、商务合作、联系博主 微信扫码或搜索:z360901061 微信扫一扫加我为好友 QQ号联系: 360901061 您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。 【本文对您有帮助就好】元 2元 5元 10元 20元 自定义 喜欢作者