当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    java Tcp通信客户端与服务器端实例

    栏目:win服务器问题汇总 时间:2020-02-04 10:56

    本文实例讲述了java Tcp通信客户端与服务器端。分享给大家供大家参考,具体如下:

    由服务器端发送数据

    服务器端:

    import java.io.*;
    import java.net.*;
    public class TestSocket {
     public static void main(String[] args) {
     try {
      ServerSocket ss = new ServerSocket(8888);
      while(true) {
      Socket s = ss.accept();
      OutputStream os = s.getOutputStream();
      DataOutputStream dos = new DataOutputStream(os);
      dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye");
      dos.close();
    //  os.flush();
      os.close();
    //  s.close();
      }
     } catch (IOException e) {
      e.printStackTrace();
      System.out.println("there is a wrong");
     }
     }
    }
    
    

    用户端:

    import java.io.*;
    import java.net.*;
    public class TestClient {
     public static void main(String[] args){
     try {
      Socket s = new Socket("127.0.0.1",8888);
      DataInputStream dis = new DataInputStream(s.getInputStream());
      System.out.println(dis.readUTF()); 
      s.close();
      dis.close();
     } catch (Exception e) {
      e.printStackTrace();
     }
     }
    }
    
    

    无论是客户端还是服务器端都可以收发数据。

    交互型

    用户端

    import java.io.*;
    import java.net.*;
    public class TestClient2 {
     public static void main(String[] args){
     try {
      Socket s = new Socket("127.0.0.1",8886);
      DataOutputStream dos = new DataOutputStream(s.getOutputStream());
      DataInputStream dis = new DataInputStream(s.getInputStream());
      System.out.println(dis.readUTF()); 
      dos.writeUTF("hey");
      String str = null;
      if((str = dis.readUTF()) != null) {
      System.out.println(str);
      }
      s.close();
      dis.close();
      dos.close();
     } catch (Exception e) {
      e.printStackTrace();
     }
     }
    }
    
    

    服务器端:

    public class TestServer2 {
     public static void main(String[] args) {
     InputStream in = null;
     OutputStream out = null;
     try {
      ServerSocket ss = new ServerSocket(8886);
      while(true) {
      Socket s = ss.accept();
      in = s.getInputStream();
      out = s.getOutputStream();
      DataOutputStream dos = new DataOutputStream(s.getOutputStream());
      DataInputStream dis = new DataInputStream(s.getInputStream());
      String str = null;
      if((str = dis.readUTF() )!= null) {
       System.out.println(str);
       System.out.println("form " + s.getInetAddress());
       System.out.println("port " + s.getPort());
    //   dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye");
      }
      dos.writeUTF("hi hello");
      dis.close();
      dos.close();
      s.close();
      }
     } catch (IOException e) {
      e.printStackTrace();
      System.out.println("there is a wrong");
     }
     }
    }
    
    

    更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

    希望本文所述对大家java程序设计有所帮助。