日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java多客戶端通信服務端代碼介紹

Java 多客戶端通信在很多人看來是一項很繁瑣的工作,其實我們在編寫代碼的時候只要是注意留心Java 多客戶端通信的源代碼就能發(fā)現(xiàn),我們認為枯燥的東西其實都很簡單。

創(chuàng)新互聯(lián)成立于2013年,先為錫山等服務建站,錫山等地企業(yè),進行企業(yè)商務咨詢服務。為錫山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

來看服務端的代碼:

 
 
 
  1. import java.net.*; 
  2. import java.io.*; 
  3. import java.util.*; 
  4. public class Jserver3 { 
  5. private ServerSocket server; 
  6. List sManager = new ArrayList(); 
  7. public Jserver3(){} 
  8. void startServer() //運行服務器 
  9. try 
  10. server=new ServerSocket(719); 
  11. System.out.println("服務器套接字已創(chuàng)建成功!"); 
  12. while(true) 
  13. Socket socket=server.accept(); 
  14. System.out.println("已經(jīng)與客戶端連接"); 
  15. new J_Thread(socket).start(); 
  16. sManager.add(socket); 
  17. System.out.println("當前客戶端連結數(shù):"+sManager.size()); 
  18. }catch(Exception e){}finally 
  19. try 
  20. server.close(); 
  21. }catch(Exception e){} 
  22. public static void main(String[] args) { 
  23. Jserver3 server=new Jserver3(); 
  24. server.startServer(); 
  25. class J_Thread extends Thread  //與客戶端進行通信的線程類 
  26. Socket socket;   //套接字引用變量 
  27. private DataInputStream reader;   //套接字輸入流 
  28. private DataOutputStream writer;  //套接字輸出流 
  29. J_Thread(Socket socket)   //構造函數(shù) 
  30. this.socket=socket; 
  31. public void run() 
  32. try 
  33. reader=new DataInputStream(socket.getInputStream());//獲取套接字的輸入流 
  34. writer=new DataOutputStream(socket.getOutputStream());//獲取套接字的輸出流 
  35. String msg; 
  36. while((msg=reader.readUTF())!=null)//如果收到客戶端發(fā)來的數(shù)據(jù) 
  37. //向客戶端發(fā)送信息 
  38. writer.writeUTF("您的情書已經(jīng)收到"); 
  39. writer.flush(); 
  40. System.out.println("來自客戶端:"+msg); 
  41. }catch(Exception e){}finally 
  42. try 
  43. sManager.remove(socket);  //刪除套接字 
  44. //關閉輸入輸出流及套接字 
  45. if(reader!=null)reader.close(); 
  46. if(writer!=null)writer.close(); 
  47. if(socket!=null)socket.close(); 
  48. reader=null; 
  49. writer=null; 
  50. socket=null; 
  51. System.out.println("客戶端離開");//向屏幕輸出相關信息 
  52. System.out.println("當前客戶端的連接數(shù):"+sManager.size()); 
  53. }catch(Exception e){} 
  54. import java.net.*;
  55. import java.io.*;
  56. import java.util.*;
  57. public class Jserver3 {
  58. private ServerSocket server;
  59. List sManager = new ArrayList();
  60. public Jserver3(){}
  61. void startServer() //運行服務器
  62. {
  63. try
  64. {
  65. server=new ServerSocket(719);
  66. System.out.println("服務器套接字已創(chuàng)建成功!");
  67. while(true)
  68. {
  69. Socket socket=server.accept();
  70. System.out.println("已經(jīng)與客戶端連接");
  71. new J_Thread(socket).start();
  72. sManager.add(socket);
  73. System.out.println("當前客戶端連結數(shù):"+sManager.size());
  74. }
  75. }catch(Exception e){}finally
  76. {
  77. try
  78. {
  79. server.close();
  80. }catch(Exception e){}
  81. }
  82. }
  83. public static void main(String[] args) {
  84. Jserver3 server=new Jserver3();
  85. server.startServer();
  86. }
  87. class J_Thread extends Thread  //與客戶端進行通信的線程類
  88. {
  89. Socket socket;   //套接字引用變量
  90. private DataInputStream reader;   //套接字輸入流
  91. private DataOutputStream writer;  //套接字輸出流
  92. J_Thread(Socket socket)   //構造函數(shù)
  93. {
  94. this.socket=socket;
  95. }
  96. public void run()
  97. {
  98. try
  99. {
  100. reader=new DataInputStream(socket.getInputStream());//獲取套接字的輸入流
  101. writer=new DataOutputStream(socket.getOutputStream());//獲取套接字的輸出流
  102. String msg;
  103. while((msg=reader.readUTF())!=null)//如果收到客戶端發(fā)來的數(shù)據(jù)
  104. {
  105. //向客戶端發(fā)送信息
  106. writer.writeUTF("您的情書已經(jīng)收到");
  107. writer.flush();
  108. System.out.println("來自客戶端:"+msg);
  109. }
  110. }catch(Exception e){}finally
  111. {
  112. try
  113. {
  114. sManager.remove(socket);  //刪除套接字
  115. //關閉輸入輸出流及套接字
  116. if(reader!=null)reader.close();
  117. if(writer!=null)writer.close();
  118. if(socket!=null)socket.close();
  119. reader=null;
  120. writer=null;
  121. socket=null;
  122. System.out.println("客戶端離開");//向屏幕輸出相關信息
  123. System.out.println("當前客戶端的連接數(shù):"+sManager.size());
  124. }catch(Exception e){}
  125. }
  126. }
  127. }
  128. }

嘎嘎 在這段代碼里,服務端MM為每一個連接的客戶端GG分配一個單獨的線程,而每一個線程里都持有對應的客戶端GG的Java 多客戶端通信對象。SO,通過這些多線程,服務端MM就練就了一心N用的功力,可以同時接受N個客戶端GG發(fā)來的情書了(,真的太賤了。。。。)

客戶端的代碼和上面的客戶端代碼一模一樣的,這里就不多說啦!


當前標題:Java多客戶端通信服務端代碼介紹
網(wǎng)頁URL:http://www.dlmjj.cn/article/cdjcpij.html