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

  • 相关阅读:
    Dotnet全平台下APM-Trace探索
    既生瑜何生亮?ASP.NET MVC VS ASP.NET Web API
    Dapper.NET——轻量ORM
    什么?字符串为空?
    Vue模板语法
    邂逅Vue.js
    Zookeeper是什么&怎么用
    虚拟机间实现免密登录
    十大排序算法最详细讲解
    JS将数字格式化成金融数字样式(千位分隔符,三位一个逗号间隔)
  • 原文地址:https://www.cnblogs.com/muliu/p/5995809.html
Copyright © 2011-2022 走看看