zoukankan      html  css  js  c++  java
  • Socket客户端/服务端简单实例

    1、client端

    package demo.socket;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;

    public class ClientTest {
    public static void main(String[] args) {
    try{
    Socket socket = new Socket("127.0.0.1",8081);
    OutputStream os = socket.getOutputStream();
    PrintWriter pw = new PrintWriter(os);

    // 获取输入流
    InputStream is = socket.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));

    // 进行写操作
    String info = "用户名:Tom,密码:123456";
    pw.write(info);
    pw.flush();
    socket.shutdownOutput();


    // 接收服务端响应
    String reply = null;
    while (!((reply = br.readLine()) == null)) {
    System.out.println("我是客户端,服务端响应是:" + reply);
    }
    // 关闭流
    br.close();
    is.close();
    pw.close();
    os.close();
    socket.close();
    } catch (UnknownHostException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }


    }

    }

    2、server端:

    package demo.socket;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class ServerSocketTest {

    public static void main(String[] args) {

    try {
    // 建立一个服务器绑定指定端口Socket(ServerSocket)并开始监听
    ServerSocket serverSocket = new ServerSocket(8081);

    // 使用accept()方法阻塞等待监听,获得新的连接
    Socket socket = serverSocket.accept();

    // 获得输入流
    InputStream is = socket.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));

    // 获得输出流
    OutputStream os = socket.getOutputStream();
    PrintWriter pw = new PrintWriter(os);

    // 读取用户输入信息
    String info = null;
    while (!((info = br.readLine()) == null)) {
    System.out.println("我是服务器,用户信息为:" + info);
    }

    // 响应信息
    String reply = "welcome";
    pw.write(reply);
    pw.flush();

    // 关闭流
    pw.close();
    os.close();
    br.close();
    is.close();
    socket.close();
    serverSocket.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }

    输出内容:

    客户端:我是客户端,服务端响应是:welcome

    服务端:我是服务器,用户信息为:用户名:Tom,密码:123456

  • 相关阅读:
    leetcode 350. Intersection of Two Arrays II
    leetcode 278. First Bad Version
    leetcode 34. Find First and Last Position of Element in Sorted Array
    leetcode 54. Spiral Matrix
    leetcode 59. Spiral Matrix II
    leetcode 44. Wildcard Matching
    leetcode 10. Regular Expression Matching(正则表达式匹配)
    leetcode 174. Dungeon Game (地下城游戏)
    leetcode 36. Valid Sudoku
    Angular Elements
  • 原文地址:https://www.cnblogs.com/muliu/p/5995809.html
Copyright © 2011-2022 走看看