Java Socket服务器关键代码配置手册

开发 后端
Java Socket服务器如何才能不出什么差错呢?其实注意相关的关键代码就能解决这一问题,下面我们就看看如何才能更好的使用这些代码。

Java Socket服务器在很多人使用的时候会出现或多或少的问题,其实在关键代码中有不少的问题需要我们处理,下面我们就看看如何才能更好的使用Java Socket服务器的相关代码。

Procedure2相比procedure1加入了多线程的部分,一个线程负责专门去接受消息,另一个负责发送消息。当服务器端负责接收的线程因为readUTF()被阻塞不能发送消息时,负责发送消息的线程让服务器端也能发送消息。同样的原理,客户端也如此。

服务器端加入的关键代码如下:

  1. class ServerReadThread extends Thread{  
  2. private DataInputStream dis;  
  3. public ServerReadThread(DataInputStream dis){  
  4. this.dis = dis;  
  5. }  
  6. public void run(){  
  7. String info;  
  8. try{  
  9. while(true){  
  10. info = dis.readUTF();  
  11. System.out.println("客户端说:" + info);  
  12. if(info.equals("goodbye")){  
  13. System.out.println("客户端拜拜了!");  
  14. System.exit(0);  
  15. }  
  16. }  
  17. }catch(IOException e){  
  18. e.printStackTrace();  
  19. }  
  20. }  
  21. }  
  22. class ServerWriteThread extends Thread{  
  23. private DataOutputStream dos;  
  24. private BufferedReader br;  
  25. public ServerWriteThread(DataOutputStream dos,BufferedReader br){  
  26. this.dos = dos;  
  27. this.br = br;  
  28. }  
  29. public void run(){  
  30. String info;  
  31. try{  
  32. while(true){  
  33. info = br.readLine();  
  34. dos.writeUTF(info);  
  35. if(info.equals("bye")){  
  36. System.exit(0);  
  37. }  
  38. }  
  39. }catch(IOException e){  
  40. e.printStackTrace();  
  41. }  
  42. }  

负责接受的类ServerReadThread继承Thread,并构造一个DataInputStream对象参数的构造函数,接收对方信息。负责发送的类ServerWriteThread继承Thread,并构造一个DataInputStream对象和BufferedRead对象的双参数的构造函数,负责发送消息。new ServerReadThread(dis).start();new ServerWriteThread(dos,br).start();开启两个线程。客户端原理与服务器端类似,就不做更详细的讲解。

思考:procedure2相比procedure1已经实现了多线程聊天,虽只是运行在控制台上,但麻雀虽小,五脏俱全,这已经体现出了java Socket编程以及多线程的核心思想,此课程设计的目的已经达到。Java Socket服务器为实现更加人性化的效果,我引入javaGUI的组件awt,与之相关的技术也就随之引入了,比如基于事件的驱动,还有awt各个组件之间的调用。与此同时,代码的分布和组织结构都要做相应的调整。

【编辑推荐】

  1. Java Socket通信如何进行通用服务器代码编写
  2. Java socket通信与C++之间的不解之缘
  3. Java Socket对象原理的详细介绍
  4. Java Socket服务端具体命令编写
  5. Java Socket通讯如何进行客户端的信息通信
责任编辑:张浩 来源: 博客园
相关推荐

2010-03-17 17:54:25

java Socket

2010-03-18 20:00:35

Java socket

2010-08-06 15:44:11

Linux服务器

2010-03-18 19:39:44

Java Socket

2010-03-17 14:22:40

Java Socket

2011-07-12 17:42:24

2009-02-27 13:22:00

2010-03-16 15:54:52

2010-03-19 15:02:50

Java Socket

2010-03-19 09:26:34

Java Socket

2019-08-01 15:25:17

Http服务器协议

2010-05-19 18:03:07

2010-05-19 18:26:28

SVN服务器安装

2011-12-07 17:05:45

JavaNIO

2010-03-22 12:57:46

Java Socket

2010-03-19 14:01:55

Java Socket

2010-03-19 17:04:01

Java socket

2010-07-01 14:22:02

配置FTP服务器

2010-04-22 23:07:47

服务器负载均衡

2010-09-27 13:19:09

cisco 3560
点赞
收藏

51CTO技术栈公众号