JAVA——C/S基础要点

C/S程序:客户端与服务器程序

本文是基于TCP协议的C/S程序。

一、使用流程

  1. 使用 ServerSocket 来搭建服务器
  2. 使用 Socket 来搭建客户端
  3. 两者使用 socket(套接字,通信端点)进行交流

二、ServerSocket

  • 概念
    用于创建服务器,创建完毕后,会绑定一个端口号,然后此服务器等待客户端连接,每连接一个客户端,服务器就会的得到一个新的Socket对象,用于跟客户端进行通信。
  • 常用构造方法
    • ServerSocket(int port)
      作用是创建一个基于TCP/IP协议的服务器,并绑定指定的端口号,参数port的范围是:0-65535(建议1025-65535,因为前面的端口多数被其他知名软件占用了)
  • 常用方法
    • Socket accept();
      等待客户端连接,此方法会导致线程阻塞,直到一个新的客户端连接成功,return Socket对象后,线程再继续执行
    • OutputStream getOutputStream()
      返回的是指向通信的另一端点的输出流。
    • InputStream getInputStream()
      返回的是指向通信的另一端点的输入流。
    • void close();
      释放占用的端口号,关闭服务器
  • 示例程序
 //创建服务器
        ServerSocket server = new ServerSocket(55555);
        System.out.println("服务器已启动");
        //等待客户端连接
        Socket socket = server.accept();
        System.out.println("客户端已连接");
        //输出流
        OutputStream os = socket.getOutputStream();
        //打印流
        PrintStream ps = new PrintStream(os);
        ps.println("欢迎连接服务器");
    }

三、Socket

  • 概念
    两台计算机之间通信的端点,是网络驱动提供给应用程序编程的一种接口,一套标准,一种机制
  • 常用构造方法
    • Socket(String ip,int port)
      创建一个套接字,并连接指定ip和端口号的服务器,ip是服务器的ip地址(本机ip通常为127.0.0.1),port是服务器的端口号
  • 常用方法
    • OutputStream getOutputStream()
      返回的是指向通信的另一端点的输出流。
    • InputStream getInputStream()
      返回的是指向通信的另一端点的输入流。
    • void close()
      关闭套接字
  • 示例程序
 //连接服务器
        Socket socket = new Socket("127.0.0.1",55555);
        //输入流
        InputStream is = socket.getInputStream();
        //缓存读取流
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        //读取服务器传递的消息
        System.out.println("服务器发送过来的消息:"+br.readLine());
  • 注意
    获取输入输出流的操作,对于客户端与服务器来说是相对的。
    客户端的输入流,输入的是服务器输出流输出的内容。
    客户端的输出流,输出到了服务器的输入流中。
    所以,一定要注意,客户端与服务器获取流的顺序必须是相反的,也就是一发一收。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值