Java中ServerSocket与Socket的区别

        发布这篇文章的原因,是因为作者太久没有写socket相关类, 导致现在对于这两个类的认识有点混乱, 因此写这篇文章来帮助自己梳理socket相关信息,如各位观众也遇到了与我类似的情况, 可以阅读此文章,来进行回忆复习。

        

首先得了解一下ServerSocket跟Socket它们是什么:

ServerSocket和Socket这两个类是Java中用于网络通信很重要的一个类, 它们各自在程序中扮演的角色不同

ServerSocket: 主要用于服务端,负责监听客户端的连接请求, 当客户端尝试连接到特定的端口时,ServerSocket就会接受到这个请求,并与其建立连接,然后返回一个新的Socket对象, 用户后续的通信

Socket:用户客户端或服务端(在接收到ServerSocket的连接请求后),它代表一个网络连接,通过该连接,可以发送和接受消息。

所以,使用的过程应该是这样子的:

首先服务器端得需要创建一个SerberSocket对象,并监听某一个端口(例如8080),然后通过accept等待客户端的请求连接。

客户端这边呢就可以创建Socket对象,并尝试连接服务端特定的端口(8080)

如果两端连接成功, 服务端那边的accept就会返回一个Socket对象, 服务端就可以通过这个Socket对象与客户端进行通信,同时客服端请求成功后, 也会返回一个Socket对象,通过这个对象可以与服务端进行通信。

所以这样子看下来,我们会发现, ServerSocket其实更像是一个服务器对一个客户端打开了一个通道(8080),而客户端需要尝试用一个水管(Socket)去连接这个通道(8080),连接成功之后呢,服务端跟客户端就可以通过这个水管进行通信了(Socket)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值