Java Socket共享的设计原理深层透析

开发 后端
Java Socket共享需要怎么样才能更好的解决呢?这就需要我们不断的进行有关代码的学习,下面我们就详细的看看如何才能更好的使用有关的代码。

Java Socket共享在使用的时候有很多的问题需要我们解决,其实有不少的问题都是在源代码中可以找到答案的,下面我们就来看看如何才能更好的使用有关的Java Socket共享服务。

在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在Java Socket共享中,实现以上功能特点是非常容易的。

Java Socket共享的设计原理:

主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。运用Thread类或Runnable接口来实现是不错的办法。

{实现消息共享}

 

  1. import java.io.*;   
  2. import java.net.*;   
  3. public class Server extends ServerSocket   
  4. {   
  5. private static final int SERVER_PORT = 10000;   
  6. public Server() throws IOException   
  7. {   
  8. super(SERVER_PORT);   
  9. try   
  10. {   
  11. while (true)   
  12. {   
  13. Socket socket = accept();   
  14. new CreateServerThread(socket);   
  15. }   
  16. }   
  17. catch (IOException e)   
  18. {}   
  19. finally   
  20. {   
  21. close();   
  22. }   
  23. }   
  24. //--- CreateServerThread   
  25. class CreateServerThread extends Thread   
  26. {   
  27. private Socket client;   
  28. private BufferedReader in;   
  29. private PrintWriter out;   
  30. public CreateServerThread(Socket s) throws IOException   
  31. {   
  32. client = s;   
  33. in = new BufferedReader(new InputStreamReader(client.getInputStream(), "GB2312"));   
  34. out = new PrintWriter(client.getOutputStream(), true);   
  35. out.println("--- Welcome ---");   
  36. start();   
  37. }   
  38. public void run()   
  39. {   
  40. try   
  41. {   
  42. String line = in.readLine();   
  43. while (!line.equals("bye"))   
  44. {   
  45. String msg = createMessage(line);   
  46. out.println(msg);   
  47. line = in.readLine();   
  48. }   
  49. out.println("--- See you, bye! ---");   
  50. client.close();   
  51. }   
  52. catch (IOException e)   
  53. {}   
  54. }   
  55. private String createMessage(String line)   
  56. {   
  57. xxxxxxxxx;   
  58. }   
  59. }   
  60. public static void main(String[] args) throws IOException   
  61. {   
  62. new Server();   
  63. }   
  64. }  

 

这个程序监听10000端口,并将接入交给CreateServerThread线程运行。CreateServerThread线程接受输入,并将输入回应客户,直到客户输入"bye",线程结束。我们可以在createMessage方法中,对输入进行处理,并产生结果,然后把结果返回给客户。
 

【编辑推荐】

  1. Java Socket通讯客户端代码编写教程
  2. Java Socket通讯实际操作手册
  3. java Socket多线程客户端配置方案
  4. java Socket多线程服务器源代码介绍
  5. Java Socket编程关键代码详解
责任编辑:张浩 来源: 互联网
相关推荐

2010-03-19 17:47:02

Java Socket

2009-07-02 12:57:00

SQL Server视

2010-03-19 10:58:48

Java Socket

2009-03-20 09:49:00

负载均衡CDN网站架构

2010-03-18 18:20:34

Java Socket

2009-07-09 13:44:22

Swing动态界面设计

2020-11-02 08:54:29

JMMVolatileSynchronize

2010-09-06 10:56:54

2010-03-18 20:13:03

Java socket

2010-03-17 19:06:59

Java join线程

2017-07-19 11:39:25

深度学习人工智能boosting

2010-09-01 15:22:13

路由器DHCP

2010-03-25 17:10:46

云计算

2012-08-13 09:46:35

虚拟化

2012-05-28 09:22:19

虚拟化

2019-12-31 20:55:13

Socket通信TCP

2010-11-03 15:52:55

数据仓库

2009-10-13 14:51:00

CCIE考试

2009-08-28 09:43:05

C#事件

2009-09-10 10:37:19

服务器维护
点赞
收藏

51CTO技术栈公众号