JavaSocket服务器关键代码配置手册

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

成都创新互联是一家专注于网站制作、成都网站建设与策划设计,武胜网站建设哪家好?成都创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:武胜等地区。武胜做网站价格咨询:13518219792

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. }
  43. }

负责接受的类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各个组件之间的调用。与此同时,代码的分布和组织结构都要做相应的调整。

网页题目:JavaSocket服务器关键代码配置手册
标题网址:http://www.shufengxianlan.com/qtweb/news24/397974.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联