利用Java怎么样实现网络通信功能

  介绍

利用Java怎么样实现网络通信功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>服务器端(服务器):

包com.ietree.basicskill.socket.mode1;
  
  进口java.io.IOException;
  进口java.net.ServerSocket;
  进口java.net.Socket;/* *
  * 服务端
  */公共类服务器{//端口号
  最终的静态int端口=8765;
  公共静态void main (String [] args) {
  考察一下服务器=零;
  尝试{
  服务器=考察(港口);
  System.out.println(“服务器启动……“);//进行阻塞
  Socket套接字=server.accept ();//创建一个程序执行客户端的任务
  新线程(新ServerHandler(插座)).start ();
  
  }捕捉(IOException e) {
  e.printStackTrace ();
  最后}{
  如果(服务器!=null) {
  尝试{
  server.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  服务器=零;
  }
  }
  }

采用多线程来处理接收到的请求(ServerHandler):

包com.ietree.basicskill.socket.mode1;
  
  进口java.io.BufferedReader;
  进口java.io.IOException;
  进口java.io.InputStreamReader;
  进口java.io.PrintWriter;
  进口java.net.Socket;
  
  公共类ServerHandler实现Runnable {
  私人Socket套接字;
  公共ServerHandler (Socket套接字){
  这一点。套接字=套接字;
  }
  
  @Override
  公共空间run () {
  BufferedReader=零;
  PrintWriter=零;
  尝试{
  在=new BufferedReader(新InputStreamReader (this.socket.getInputStream ()));=new PrintWriter (this.socket.getOutputStream(),真的);
  字符串的身体=零;
  而(真){
  身体=in.readLine ();
  如果(身体==null) {
  打破;
  }
  System.out.println(服务器:“;+身体);
  out.println(“服务器端回送响应的数据!”);
  }
  }捕捉(异常e) {
  e.printStackTrace ();
  最后}{
  如果(在!=null) {
  尝试{
  in.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  如果(!=null) {
  尝试{
  out.close ();
  }捕捉(异常e) {
  e.printStackTrace ();
  }
  }
  如果(套接字!=null) {
  尝试{
  socket.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  套接字=零;
  }
  }
  }

<>强客户端(客户端):

包com.ietree.basicskill.socket.mode1;
  
  进口java.io.BufferedReader;
  进口java.io.IOException;
  进口java.io.InputStreamReader;
  进口java.io.PrintWriter;
  进口java.net.Socket;/* *
  * 客户端
  */公共类客户{
  最终的静态字符串地址=?27.0.0.1";
  最终的静态int端口=8765;
  公共静态void main (String [] args) {
  Socket套接字=零;
  BufferedReader=零;
  PrintWriter=零;
  尝试{
  套接字=新的套接字(地址、端口);
  在=new BufferedReader(新InputStreamReader (socket.getInputStream ()));=new PrintWriter (socket.getOutputStream(),真的);//向服务器端发送数据
  out.println(“接收到客户端的请求数据……“);
  字符串响应=in.readLine ();
  System.out.println(客户:“;+反应);
  }捕捉(异常e) {
  e.printStackTrace ();
  最后}{
  如果(在!=null) {
  尝试{
  in.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  如果(!=null) {
  尝试{
  out.close ();
  }捕捉(异常e) {
  e.printStackTrace ();
  }
  }
  如果(套接字!=null) {
  尝试{
  socket.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  套接字=零;
  }
  }
  }

程序输出:

客户:服务器端回送响应的数据。

同步非阻塞(NIO)

异步非阻塞(AIO)

看完上述内容,你们掌握利用Java怎么样实现网络通信功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

利用Java怎么样实现网络通信功能