ServerSocket与Socket的区别,第1张

ServerSocket提供监听方法

客户的Socket使用conect()方法连接

服务端的accept()方法的返回值也是一个Socket

实际上提供联系的是两个Socket

哈哈,我用自己的语言来说一下

打开英文词霸,发现socket的中文意思是插座的意思。

简言之socket就是:有插座,有插头,有电器(比如电灯)。

插座带电, 插头插入插座以后,就可以把电流通到电器里面去,这时候电灯就可以工作了。

引申一下呢:

插座:相当于服务端程序,他可以向客户(电器)提供资料,任何人只要满足一定条件就可以去服务端取资料(电流);

插头:就是socket,它是一种抽象的东西,也可以理解成一种规范,大家都承诺会尊守这一个规范,比如插头有三脚的,两脚的,四脚的,等等,大小也有规定。只要是插座能接受的就可以插入进去。

电流: 从服务器取下来的资料就可以认为是电流,可以供人参考查询等等。

电器: 我们的客户端程序就是电器,比如IE其实就是客户端程序,QQ也是。我们利用IE,给他指定一个网址,他就会利用HTTP协议去指定的服务器网站取下新闻等资讯给我们看。给我们看的过程需要程序进行分解,如播音乐、放动画等等;

socket的工作过程:

简述一下QQ聊天的工作原理。

假设腾讯公司建立了一个服务器,socketServer 并打开了 5555 这个端口

其实就是给了全中国的人一个插座,并且规定只接收规格是 5555的插头,大家都可以把插头插到腾讯公司的服务器上去取电流;

这时候玩家A 利用客户端 插上去了,于是他与服务器建立了通道。有电流的联系了,并且是双向的,他即可以向服务器取消息,又可以把消息发到服务器。

于是他向服务器发送了一条消息(电流)在消息中说明了想要说的话,并且指明要发给一个叫玩家B的人。

这时候服务器接收了这条消息,暂存。

过了一会儿,玩家B也插上去了插座,并向服务器发送了一条消息,说我上来了。

服务器检测到玩家B正好是之前玩家A要发送的对象,于是通过通道把消息发给了玩家B,这样玩家B就看到了玩家A说的话。

Connection :通道,连接,可以是Socket的。并且可以从中得到InputStream 和OutputStream;

OutputStream: 有了通道就可以以流的形式发送想要发送的东西,比方有了电线才可以把电流传到另一端,在网络中大家传送的都是字节流byte

inputStream: 有了通道就可以以流的形式接收想要收的东西。

现在可以通过OutputStream把想要说的话向服务器发送,通过Socket通道

也可以通过InputStream向服务器索要与自己相关的内容。

明白未?

参考:

简单理解Socket

tcp和udp都是是传输层的协议。

1定义:

Socket 是操作系统提供的进程间通信的机制。是操作系统为应用程序提供一组接口(API),称为 套接字接口 (英语:socket API)

2原理:

使用 本地IP地址 + 本地通讯端口 + 通讯协议 + 远程IP地址 + 远程通讯接口 这5个元来唯一确定2个进程间的通讯。

socket是"打开--读/写--关闭"模式的实现。如下为使用tcp协议的socket流程。

1服务器根据地址类型,socket类型,协议类型创建socket。 socket()

2服务器为socket绑定ip地址 和 端口号。bind()

3服务器socket监听端口号。listen()

4客户端创建socket。

5客户端打开socket,根据服务器ip地址和端口号,连接服务器socket。connect()

6服务器接收客户端socket,被动打开。 Accept()

7客户端向socket写入信息。write()

8服务器读取信息。read()

9客户端关闭。close()

10服务器关闭。

在Socket中,服务器socket 和客户端socket建立连接的过程就是tcp的三次握手过程。

  telnet和socket的区别在于以下几点:

  1,socket主要是指传输层的协议,包括TCP,UDP,和SCTP;而telnet是应用层协议,是基于传输层协议的上层协议。

  2,telnet能连通只能说明,主机开通了telnet服务,在对应的端口上起了telnet的server监听,所以当有客户端连接上来以后,连接能够正常建立起来;而socket连接就被对端打死,主要有两种原因:一是服务器并没有在这个端口上开任何的服务,这时候连接上去,server就会回一个RST;二就是某些协议有验证的特性,如果验证失败,server也可能打死连接。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » ServerSocket与Socket的区别

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情