聊天室小项目

本文介绍了Java中客户端和服务端如何利用Socket进行通信。客户端通过指定IP地址和服务端口实例化Socket来建立连接,而服务端则通过ServerSocket监听并接受客户端连接请求。文中详细解释了Socket及ServerSocket的主要功能及使用方法。

客户端

  • java.net.Socket 套接字
  • Socket封装了TCP连接和通讯的细节,使用它可以通过两条流的读写完成与远端计算机的数据交互
  • 实例化Socket时需要传入两个参数:
    1. 服务端计算机的IP地址
    2. 服务端应用程序打开的服务端口
      我们通过IP可以找到网络上的服务端计算机,通过端口连接到该机器上的服务端应用程序
    3. 实例化Socket的过程就是连接的过程,若服务端没有响应,这里会抛出异常
  • Socket提供的方法:
    • OutputStream getOutputStream()
    • 获取的直接输出流写出的字节会通过网络发送给远端计算机

服务端

  • java.net.ServerSocket

  • 运行在服务端的ServerSocket主要有两个作用:

    1. 向系统申请服务端口(客户端就是通过这个端口与服务端程序建立连接的)
    2. 监听端口,一旦一个客户端建立连接,那么就会自动创建一个Socket与该客户端通讯
  • ServerSocket提供了客户端连接的方法:Socket accept()

    • 这是一个阻塞方法,调用后服务端开始等待(Scanner也是),直到一个客户端通过这个端口与服务端建立连接为止,这时该方法会返回一个Socket实例,通过这个实例就可以与该客户端通讯了。
    • 多次调用accept方法可以等待多个客户端的连接

    图示:
    在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值