< 返回技术文档列表

Java 中怎么实现多客户端通信

发布时间:2021-09-01 01:29:49⊙投诉举报

今天就跟大家聊聊有关Java 中怎么实现多客户端通信,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

来看服务端的代码:

import java.net.*;   import java.io.*;   import java.util.*;   public class Jserver3 {   private ServerSocket server;   List sManager = new ArrayList();   public Jserver3(){}   void startServer() //运行服务器   {   try   {   server=new ServerSocket(719);   System.out.println("服务器套接字已创建成功!");   while(true)   {   Socket socket=server.accept();   System.out.println("已经与客户端连接");   new J_Thread(socket).start();   sManager.add(socket);   System.out.println("当前客户端连结数:"+sManager.size());   }   }catch(Exception e){}finally   {   try   {   server.close();   }catch(Exception e){}   }   }   public static void main(String[] args) {   Jserver3 server=new Jserver3();   server.startServer();   }   class J_Thread extends Thread//与客户端进行通信的线程类   {   Socket socket; //套接字引用变量   private DataInputStream reader; //套接字输入流   private DataOutputStream writer;  //套接字输出流   J_Thread(Socket socket) //构造函数   {   this.socket=socket;   }   public void run()   {   try   {   reader=new DataInputStream(socket.getInputStream());//获取套接字的输入流   writer=new DataOutputStream(socket.getOutputStream());//获取套接字的输出流   String msg;   while((msg=reader.readUTF())!=null)//如果收到客户端发来的数据   {   //向客户端发送信息   writer.writeUTF("您的情书已经收到");   writer.flush();   System.out.println("来自客户端:"+msg);   }   }catch(Exception e){}finally   {   try   {   sManager.remove(socket);  //删除套接字   //关闭输入输出流及套接字   if(reader!=null)reader.close();   if(writer!=null)writer.close();   if(socket!=null)socket.close();   reader=null;   writer=null;   socket=null;   System.out.println("客户端离开");//向屏幕输出相关信息   System.out.println("当前客户端的连接数:"+sManager.size());   }catch(Exception e){}   }   }   }   }   import java.net.*;  import java.io.*;  import java.util.*;  public class Jserver3 {  private ServerSocket server;  List sManager = new ArrayList();  public Jserver3(){}  void startServer() //运行服务器  {  try  {  server=new ServerSocket(719);  System.out.println("服务器套接字已创建成功!");  while(true)  {  Socket socket=server.accept();  System.out.println("已经与客户端连接");  new J_Thread(socket).start();  sManager.add(socket);  System.out.println("当前客户端连结数:"+sManager.size());  }  }catch(Exception e){}finally  {  try  {  server.close();  }catch(Exception e){}  }  }  public static void main(String[] args) {  Jserver3 server=new Jserver3();  server.startServer();  }  class J_Thread extends Thread//与客户端进行通信的线程类  {  Socket socket; //套接字引用变量  private DataInputStream reader; //套接字输入流  private DataOutputStream writer;  //套接字输出流  J_Thread(Socket socket) //构造函数  {  this.socket=socket;  }  public void run()  {  try  {  reader=new DataInputStream(socket.getInputStream());//获取套接字的输入流  writer=new DataOutputStream(socket.getOutputStream());//获取套接字的输出流  String msg;  while((msg=reader.readUTF())!=null)//如果收到客户端发来的数据  {  //向客户端发送信息  writer.writeUTF("您的情书已经收到");  writer.flush();  System.out.println("来自客户端:"+msg);  }  }catch(Exception e){}finally  {  try  {  sManager.remove(socket);  //删除套接字  //关闭输入输出流及套接字  if(reader!=null)reader.close();  if(writer!=null)writer.close();  if(socket!=null)socket.close();  reader=null;  writer=null;  socket=null;  System.out.println("客户端离开");//向屏幕输出相关信息  System.out.println("当前客户端的连接数:"+sManager.size());  }catch(Exception e){}  }  }  }  }

看完上述内容,你们对Java 中怎么实现多客户端通信有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注血鸟云行业资讯频道,感谢大家的支持。


/template/Home/Zkeys/PC/Static