• 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

  • 相关阅读:
    八大排序算法
    大数据系列文章汇总
    HBase原理、设计与优化实践
    hbase分页应用场景及分页思路与代码实现
    【HBase】zookeeper在HBase中的应用
    HBase什么时候作minor major compact
    Namenode HA原理详解(脑裂)
    【版本特性】sql server2005版本特性
    Navicat破解版下载安装
    MongoDB(2.2)MongoDB的安装与基本使用
  • 原文地址:https://www.cnblogs.com/muliu/p/5995809.html
Copyright © 2020-2023  润新知