`
txf2004
  • 浏览: 6853416 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java Socket多线程服务端、客户端

 
阅读更多

Java Socket多线程服务端、客户端

分类: JAVA 87人阅读 评论(0) 收藏 举报
  1. //主方法
  2. packagecom.huhai.demo.socket;
  3. publicclassMain{
  4. /**功能说明:
  5. *@paramargs
  6. *@author胡海
  7. *@throwsInterruptedException
  8. *@since2011-11-8下午05:08:05
  9. */
  10. publicstaticvoidmain(String[]args)throwsInterruptedException{
  11. ThreadserverTthread=newThread(newRunnable(){
  12. publicvoidrun(){
  13. newSocketServer();
  14. }
  15. });
  16. serverTthread.start();
  17. Thread.sleep(1000);
  18. ThreadclientThread=newThread(newRunnable(){
  19. publicvoidrun(){
  20. newSocketClient();
  21. }
  22. });
  23. clientThread.start();
  24. }
  25. }
  26. //客户端
  27. <prename="code"class="java">packagecom.huhai.demo.socket;
  28. importjava.io.BufferedReader;
  29. importjava.io.InputStreamReader;
  30. importjava.io.PrintWriter;
  31. importjava.net.Socket;
  32. publicclassSocketClient{
  33. privateSocketsocket;
  34. privateintport=10000;
  35. privateStringhostIp="127.0.0.1";
  36. publicSocketClient(){
  37. try{
  38. Stringmessage=null;
  39. BufferedReaderin=null;
  40. PrintWriterout=null;
  41. BufferedReaderline=null;
  42. while(!SocketCommand.CONST_QUIT.equals(message)){
  43. socket=newSocket(hostIp,port);
  44. in=newBufferedReader(newInputStreamReader(socket.getInputStream()));
  45. out=newPrintWriter(socket.getOutputStream(),true);
  46. line=newBufferedReader(newInputStreamReader(System.in));
  47. System.out.println("pleaseinputsomecharacters:");
  48. message=line.readLine();
  49. out.println(message);
  50. System.out.println("Backmessagefromserver:["+in.readLine()+"]");
  51. }
  52. System.out.println("Clientexit.");
  53. line.close();
  54. out.close();
  55. in.close();
  56. socket.close();
  57. }catch(Exceptione){
  58. e.printStackTrace();
  59. }
  60. }
  61. publicstaticvoidmain(String[]args){
  62. newSocketClient();
  63. }
  64. }

//服务端
  1. packagecom.huhai.demo.socket;
  2. importjava.io.BufferedReader;
  3. importjava.io.IOException;
  4. importjava.io.InputStreamReader;
  5. importjava.io.PrintWriter;
  6. importjava.net.ServerSocket;
  7. importjava.net.Socket;
  8. importjava.util.concurrent.ExecutorService;
  9. importjava.util.concurrent.Executors;
  10. publicclassSocketServer{
  11. privateServerSocketserverSocket;
  12. privateSocketsocket;
  13. privateintport=10000;
  14. privateExecutorServiceexecuteService=Executors.newFixedThreadPool(10);
  15. publicSocketServer(){
  16. try{
  17. serverSocket=newServerSocket(port);
  18. //serverSocket=newServerSocket(port,10,InetAddress.getByName("192.168.1.102"));
  19. System.out.println("SocketServerhavebeenstarted.["+serverSocket+"]");
  20. while(true){
  21. socket=serverSocket.accept();
  22. executeService.submit(newRunnable(){
  23. publicvoidrun(){
  24. try{
  25. BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));
  26. PrintWriterout=newPrintWriter(socket.getOutputStream(),true);
  27. Stringline=in.readLine();
  28. System.out.println("ServerReceived:["+line+"]");
  29. out.println("ServerReceived:["+line+"]");
  30. out.close();
  31. in.close();
  32. }catch(Exceptione){
  33. e.printStackTrace();
  34. }finally{
  35. try{
  36. socket.close();
  37. }catch(IOExceptione){
  38. System.out.println("closesocketerror.");
  39. e.printStackTrace();
  40. }
  41. }
  42. }
  43. });
  44. }
  45. }catch(Exceptione){
  46. e.printStackTrace();
  47. }finally{
  48. try{
  49. if(null!=serverSocket){
  50. serverSocket.close();
  51. System.out.println("serverSocketclose");
  52. }
  53. }catch(Exceptione){
  54. e.printStackTrace();
  55. }
  56. }
  57. }
  58. publicstaticvoidmain(String[]args){
  59. newSocketServer();
  60. }
  61. }

//常量
  1. packagecom.huhai.demo.socket;
  2. publicclassSocketCommand{
  3. publicstaticfinalStringCONST_QUIT="quit";
  4. }

运行结果:


  1. //主方法
  2. packagecom.huhai.demo.socket;
  3. publicclassMain{
  4. /**功能说明:
  5. *@paramargs
  6. *@author胡海
  7. *@throwsInterruptedException
  8. *@since2011-11-8下午05:08:05
  9. */
  10. publicstaticvoidmain(String[]args)throwsInterruptedException{
  11. ThreadserverTthread=newThread(newRunnable(){
  12. publicvoidrun(){
  13. newSocketServer();
  14. }
  15. });
  16. serverTthread.start();
  17. Thread.sleep(1000);
  18. ThreadclientThread=newThread(newRunnable(){
  19. publicvoidrun(){
  20. newSocketClient();
  21. }
  22. });
  23. clientThread.start();
  24. }
  25. }
  26. //客户端
  27. <prename="code"class="java">packagecom.huhai.demo.socket;
  28. importjava.io.BufferedReader;
  29. importjava.io.InputStreamReader;
  30. importjava.io.PrintWriter;
  31. importjava.net.Socket;
  32. publicclassSocketClient{
  33. privateSocketsocket;
  34. privateintport=10000;
  35. privateStringhostIp="127.0.0.1";
  36. publicSocketClient(){
  37. try{
  38. Stringmessage=null;
  39. BufferedReaderin=null;
  40. PrintWriterout=null;
  41. BufferedReaderline=null;
  42. while(!SocketCommand.CONST_QUIT.equals(message)){
  43. socket=newSocket(hostIp,port);
  44. in=newBufferedReader(newInputStreamReader(socket.getInputStream()));
  45. out=newPrintWriter(socket.getOutputStream(),true);
  46. line=newBufferedReader(newInputStreamReader(System.in));
  47. System.out.println("pleaseinputsomecharacters:");
  48. message=line.readLine();
  49. out.println(message);
  50. System.out.println("Backmessagefromserver:["+in.readLine()+"]");
  51. }
  52. System.out.println("Clientexit.");
  53. line.close();
  54. out.close();
  55. in.close();
  56. socket.close();
  57. }catch(Exceptione){
  58. e.printStackTrace();
  59. }
  60. }
  61. publicstaticvoidmain(String[]args){
  62. newSocketClient();
  63. }
  64. }

//服务端
  1. packagecom.huhai.demo.socket;
  2. importjava.io.BufferedReader;
  3. importjava.io.IOException;
  4. importjava.io.InputStreamReader;
  5. importjava.io.PrintWriter;
  6. importjava.net.ServerSocket;
  7. importjava.net.Socket;
  8. importjava.util.concurrent.ExecutorService;
  9. importjava.util.concurrent.Executors;
  10. publicclassSocketServer{
  11. privateServerSocketserverSocket;
  12. privateSocketsocket;
  13. privateintport=10000;
  14. privateExecutorServiceexecuteService=Executors.newFixedThreadPool(10);
  15. publicSocketServer(){
  16. try{
  17. serverSocket=newServerSocket(port);
  18. //serverSocket=newServerSocket(port,10,InetAddress.getByName("192.168.1.102"));
  19. System.out.println("SocketServerhavebeenstarted.["+serverSocket+"]");
  20. while(true){
  21. socket=serverSocket.accept();
  22. executeService.submit(newRunnable(){
  23. publicvoidrun(){
  24. try{
  25. BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));
  26. PrintWriterout=newPrintWriter(socket.getOutputStream(),true);
  27. Stringline=in.readLine();
  28. System.out.println("ServerReceived:["+line+"]");
  29. out.println("ServerReceived:["+line+"]");
  30. out.close();
  31. in.close();
  32. }catch(Exceptione){
  33. e.printStackTrace();
  34. }finally{
  35. try{
  36. socket.close();
  37. }catch(IOExceptione){
  38. System.out.println("closesocketerror.");
  39. e.printStackTrace();
  40. }
  41. }
  42. }
  43. });
  44. }
  45. }catch(Exceptione){
  46. e.printStackTrace();
  47. }finally{
  48. try{
  49. if(null!=serverSocket){
  50. serverSocket.close();
  51. System.out.println("serverSocketclose");
  52. }
  53. }catch(Exceptione){
  54. e.printStackTrace();
  55. }
  56. }
  57. }
  58. publicstaticvoidmain(String[]args){
  59. newSocketServer();
  60. }
  61. }

//常量
  1. packagecom.huhai.demo.socket;
  2. publicclassSocketCommand{
  3. publicstaticfinalStringCONST_QUIT="quit";
  4. }

运行结果:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics