zoukankan      html  css  js  c++  java
  • 基于TCP协议的socket通信

    一、服务器端

    1、创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口

    ServerSocket server = new ServerSocket(8888);

    2、调用accept()方法,开始侦听,等待客户端的连接,在未连接成功之前,处于阻塞状态,返回的socket,用于与客户端连接

    Socket socket = server.accept();

    3、获取输入流,用来读取客户端发来的信息

    InputStream is = socket.getInputStream();//字节输入流
    InputStreamReader isr = new InputStreamReader(is);//字符输入流
    BufferedReader br = new BufferedReader(isr);//缓冲输入流
    String info = null;
    while((info=br.readLine()) != null){
    //循环读取数据
    System.out.println("客户端说:"+info);
    }
    socket.shutdownInput();//关闭输入流

    4、获取输出流,用户响应客户端的请求

    OutputStream os = socket.getOutputStream();//字节输出流
    PrintWriter pw = new PrintWriter(os);//打印输出流
    pw.write("服务器端已接受你的请求,允许登录");
    pw.flush();
    socket.shutdownOutput();//关闭输出流

    5、关闭资源

    br.close();
    isr.close();
    is.close();
    pw.close();
    os.close();
    socket.close();
    server.close();

    二、客户端

    1、创建客户端socket,指定要连接的服务器地址和端口号

    Socket socket = new Socket("127.0.0.1",8888);

    2、获取输出流,给服务器端发送信息

    OutputStream os = socket.getOutputStream();//字节流
    PrintWriter pw = new PrintWriter(os);//打印流
    pw.write("用户名:admin;密码:123");
    pw.flush();
    socket.shutdownOutput();//关闭输出流

    3、获取输入流,用来读取服务器端发来的信息

    InputStream is = socket.getInputStream();//字节输入流
    InputStreamReader isr = new InputStreamReader(is);//字符输入流
    BufferedReader br = new BufferedReader(isr);//缓冲输入流
    String info = null;
    while((info=br.readLine()) != null){
    System.out.println("服务端说:"+info);
    }
    socket.shutdownInput();//关闭输入流

    4、关闭资源

    br.close();
    isr.close();
    is.close();
    pw.close();
    os.close();
    socket.close();

  • 相关阅读:
    Thinkpad R400无线网络一个都不见了!
    如果使用安卓4.4的SD卡?
    如何使用安卓4.4的SD卡?
    在IAR使用FreeRTOS出现Error[Pa045]: function "XXX" has no prototype
    DSP5509的RTC实验-第3篇
    LWM2M简介-学习记录
    DSP5509的定时器实验-第2篇
    DSP5509的XF实验-第一篇
    华为LiteOS系统使用-任务调度函数-第一篇
    2017-12-24自选的股票之春秋航空
  • 原文地址:https://www.cnblogs.com/rrb520/p/6245415.html
Copyright © 2011-2022 走看看