您现在的位置是:首页 >

opc服务器与opc客户端 一个Java 的 Socket 服务器和客户端通信的例子

火烧 2022-08-04 03:54:41 1139
一个Java 的 Socket 服务器和客户端通信的例子   一个 HelloWord 级别的 Java Socket 通信的例子 通讯过程   先启动 Server 端 进入一个死循环以便一直监听某

一个Java 的 Socket 服务器和客户端通信的例子  

  一个 HelloWord 级别的 Java Socket 通信的例子 通讯过程

  先启动 Server 端 进入一个死循环以便一直监听某端口是否有连接请求 然后运行 Client 端 客户端发出连接请求 服务端监听到这次请求后向客户端发回接受消息 连接建立 启动一个线程去处理这次请求 然后继续死循环监听其他请求 客户端输入字符串后按回车键 向服务器发送数据 服务器读取数据后回复客户端数据 这次请求处理完毕 启动的线程消亡 如果客户端接收到 OK 之外的返回数据 会再次发送连接请求并发送数据 服务器会为这次连接再次启动一个线程来进行响应…直到当客户端接收到的返回数据为 OK 时 客户端退出

  服务端源代码

  [java] view plaincopyprint?

   package defonds socket begin;

  

   import java io BufferedReader;

   import java io DataInputStream;

   import java io DataOutputStream;

   import java io InputStreamReader;

   import ServerSocket;

   import Socket;

  

   public class Server {

       public static final int PORT = ;//监听的端口号

  

       public static void main(String[] args) {

           System out println( 服务器启动…n )

           Server server = new Server()

           server init()

       }

  

       public void init() {

           try {

               ServerSocket serverSocket = new ServerSocket(PORT)

               while (true) {

                   // 一旦有堵塞 则表示服务器与客户端获得了连接

                   Socket client = serverSocket accept()

                   // 处理这次连接

                   new HandlerThread(client)

               }

           } catch (Exception e) {

               System out println( 服务器异常 + e getMessage())

           }

       }

  

       private class HandlerThread implements Runnable {

           private Socket socket;

           public HandlerThread(Socket client) {

               socket = client;

               new Thread(this) start()

           }

  

           public void run() {

               try {

                   // 读取客户端数据

                   DataInputStream input = new DataInputStream(socket getInputStream())

                   String clientInputStr = input readUTF() //这里要注意和客户端输出流的写方法对应 否则会抛 EOFException

                   // 处理客户端数据

                   System out println( 客户端发过来的内容 + clientInputStr)

  

                   // 向客户端回复信息

                   DataOutputStream out = new DataOutputStream(socket getOutputStream())

                   System out print( 请输入 t )

                   // 发送键盘输入的一行

                   String s = new BufferedReader(new InputStreamReader(System in)) readLine()

                   out writeUTF(s)

  

                   out close()

                   input close()

               } catch (Exception e) {

                   System out println( 服务器 run 异常 + e getMessage())

               } finally {

                   if (socket != null) {

                       try {

                           socket close()

                       } catch (Exception e) {

                           socket = null;

                           System out println( 服务端 finally 异常 + e getMessage())

                       }

                   }

               }

           }

       }

   }

  package defonds socket begin;

  import java io BufferedReader;

  import java io DataInputStream;

  import java io DataOutputStream;

  import java io InputStreamReader;

  import ServerSocket;

  import Socket;

  public class Server {

  public static final int PORT = ;//监听的端口号

  public static void main(String[] args) {

  System out println( 服务器启动…n )

  Server server = new Server()

  server init()

  }

  public void init() {

  try {

  ServerSocket serverSocket = new ServerSocket(PORT)

  while (true) {

  // 一旦有堵塞 则表示服务器与客户端获得了连接

  Socket client = serverSocket accept()

  // 处理这次连接

  new HandlerThread(client)

  }

  } catch (Exception e) {

  System out println( 服务器异常 + e getMessage())

  }

opc服务器与opc客户端 一个Java 的 Socket 服务器和客户端通信的例子

  }

  private class HandlerThread implements Runnable {

  private Socket socket;

  public HandlerThread(Socket client) {

  socket = client;

  new Thread(this) start()

  }

  public void run() {

  try {

  // 读取客户端数据

  DataInputStream input = new DataInputStream(socket getInputStream())

  String clientInputStr = input readUTF() //这里要注意和客户端输出流的写方法对应 否则会抛 EOFException

  // 处理客户端数据

  System out println( 客户端发过来的内容 + clientInputStr)

  // 向客户端回复信息

  DataOutputStream out = new DataOutputStream(socket getOutputStream())

  System out print( 请输入 t )

  // 发送键盘输入的一行

  String s = new BufferedReader(new InputStreamReader(System in)) readLine()

  out writeUTF(s)

  out close()

  input close()

  } catch (Exception e) {

  System out println( 服务器 run 异常 + e getMessage())

  } finally {

  if (socket != null) {

  try {

  socket close()

  } catch (Exception e) {

  socket = null;

  System out println( 服务端 finally 异常 + e getMessage())

  }

  }

  }

  }

  }

  }  客户端源代码

  [java] view plaincopyprint?

   package defonds socket begin;

  

   import java io BufferedReader;

   import java io DataInputStream;

   import java io DataOutputStream;

   import java io IOException;

   import java io InputStreamReader;

   import Socket;

  

   public class Client {

       public static final String IP_ADDR = localhost ;//服务器地址

       public static final int PORT = ;//服务器端口号

  

       public static void main(String[] args) {

           System out println( 客户端启动… )

           System out println( 当接收到服务器端字符为 OK 的时候 客户端将终止n )

           while (true) {

               Socket socket = null;

               try {

                   //创建一个流套接字并将其连接到指定主机上的指定端口号

                   socket = new Socket(IP_ADDR PORT)

  

                   //读取服务器端数据

                   DataInputStream input = new DataInputStream(socket getInputStream())

                   //向服务器端发送数据

                   DataOutputStream out = new DataOutputStream(socket getOutputStream())

                   System out print( 请输入 t )

                   String str = new BufferedReader(new InputStreamReader(System in)) readLine()

                   out writeUTF(str)

  

                   String ret = input readUTF()

                   System out println( 服务器端返回过来的是 + ret)

                   // 如接收到 OK 则断开连接

                   if ( OK equals(ret)) {

                       System out println( 客户端将关闭连接 )

                       Thread sleep( )

                       break;

                   }

  

                   out close()

                   input close()

               } catch (Exception e) {

                   System out println( 客户端异常 + e getMessage())

               } finally {

                   if (socket != null) {

                       try {

                           socket close()

                       } catch (IOException e) {

                           socket = null;

                           System out println( 客户端 finally 异常 + e getMessage())

                       }

                   }

               }

           }

       }

   }

  package defonds socket begin;

  import java io BufferedReader;

  import java io DataInputStream;

  import java io DataOutputStream;

  import java io IOException;

  import java io InputStreamReader;

  import Socket;

  public class Client {

  public static final String IP_ADDR = localhost ;//服务器地址

  public static final int PORT = ;//服务器端口号

  public static void main(String[] args) {

  System out println( 客户端启动… )

  System out println( 当接收到服务器端字符为 OK 的时候 客户端将终止n )

  while (true) {

  Socket socket = null;

  try {

  //创建一个流套接字并将其连接到指定主机上的指定端口号

  socket = new Socket(IP_ADDR PORT)

  //读取服务器端数据

  DataInputStream input = new DataInputStream(socket getInputStream())

  //向服务器端发送数据

  DataOutputStream out = new DataOutputStream(socket getOutputStream())

  System out print( 请输入 t )

  String str = new BufferedReader(new InputStreamReader(System in)) readLine()

  out writeUTF(str)

  String ret = input readUTF()

  System out println( 服务器端返回过来的是 + ret)

  // 如接收到 OK 则断开连接

  if ( OK equals(ret)) {

  System out println( 客户端将关闭连接 )

  Thread sleep( )

  break;

  }

  out close()

  input close()

  } catch (Exception e) {

  System out println( 客户端异常 + e getMessage())

  } finally {

  if (socket != null) {

  try {

  socket close()

  } catch (IOException e) {

  socket = null;

  System out println( 客户端 finally 异常 + e getMessage())

  }

  }

  }

  }

  }

  }

lishixinzhi/Article/program/Java/hx/201311/25568  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码