关于Socket

一、Socket的解释及形象比喻

在Internet上的主机一般运行了多个服务软件,同时提供了几种服务。每种服务都打开一个Socket并绑定到一个端口上,不同的端口对应不同的服务。

Socket正如其英文原意那样,像一个多孔插座,一台主机犹如一间布满各种插座的房间,每个插座都有一个编号。客户软件将插头插到不同编号的插座,就可以得到不同的服务。


二、什么是Socket

所谓Socket通常称作“套接字”,网络通过“套接字”向网络发出请求应答网络请求。Socket和ServerSocket类库位于java.net包中,ServerSocket用于服务器端,Socket是建立网络连接用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作则个实例,完成所需的对话。


三、重要的Socket API

使用最频繁的3个方法:

Accept方法:用于产生“阻塞”,直到接收到一个连接,并且返回一个客户端的Socket对象实例。(“阻塞”是一个术语,它使程序运行暂时“停留”在这个地方,直到一个会话产生,然后程序继续)。

getInputStream方法:获得网络连接输入,同时返回一个InputStream对象实例。

getOutputStream方法:连接的另一端将获得输入,同时返回一个OutputStream对象实例。注意getInputStream和getOutputStream这两种方法均可能会产生一个IOException.


四、Socket连接过程

可以分为3个步骤:服务器监听客户端请求连接确认

服务器监听:是服务器端并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。

客户端请求:客户端首先要描述要连接的服务端的套接字,指出服务器端的地址端口号,然后就向服务端套接字提出连接要求。

连接确认:是指当服务器端套接字监听到或者接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户确认了此描述,连接就建立好了。而服务端的套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值