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

  • 相关阅读:
    Hibernate 基本写法
    JavaWeb中的中文乱码问题
    AJAXJson
    Hibernate 的几个概念
    sql 中的备份集、备份设备、媒体、媒体集
    收缩数据库日志文件
    AJAXjs
    rand一定要加srand随机数种子
    CheckBit,SetBit设置二进制位的方法使用
    memset(buf,0,100)和memset(buf,'\0',100)有什么区别?
  • 原文地址:https://www.cnblogs.com/muliu/p/5995809.html
Copyright © 2011-2022 走看看