Java聊天室小程序(1)原理介绍 2021-05-01

Java聊天室小程序(1)

聊天室基本原理(Socket通信)

服务器端与客户端交互,要实现两者之间的网络连接,在两者间使用IO流进行数据的读取写入。

Socket连接客户端与服务器端

    1.通信方式

选择Client/Server模式

Client/Server模式相比于Browser/Server模式,可以提高响应速度,客户端操作界面更加简洁、直观,满足个性化要求。缺点是兼容性较差,使用不同工具时,需要重新编写程序。

  1. C/S建立在专用网络上,通过专门服务器服务;而B/S建立在广域网上,不必有专门的网络硬件环境。
  2. C/S一般面向相对固定的用户群,对信息安全的控制能力很强;而B/S面向不可知的用户群,对安全的控制能力相对弱。
  • 服务器端:Server

发送系统消息,交换聊天信息,监听用户上下线。

  • 客户端:Client

多人聊天,私人聊天,发送文字、文件。

 

登录是客户端向服务器端发出请求,服务器端接收请求后,根据账号密码给出相应的响应。

若账号密码正确,客户端即可打开聊天主界面。

若账号密码错误,客户端提示登录账号密码错误。

   

    2.通信连接方式

客户端与服务器端建立长连接通信

长连接在连接数较少情况下,省去较多的TCP建立和关闭的操作,节约时间,速度快,避免每次请求都打开一个新的连接,发生错误可以在不关闭连接情况下进行提示。

传输控制协议(TCP)

长连接

  1. 连接->传输数据->保持连接 -> 传输数据-> ...........->直到一方关闭连接,多是客户端关闭连接。
  2. 长连接指建立Socket连接后不管是否使用都保持连接,但安全性较差。

短连接

  1. 连接->传输数据->关闭连接
  2. 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
  3. 因为连接后接收了数据就断开了,所以每次数据接受处理不会有联系。 这也是HTTP协议无状态的原因之一。

客户端A向客户端B发消息必须经过服务器端的转发

群聊是客户端A将消息发给服务器端,服务器端将消息发给客户端B、C、D、E....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值