×

socket是什么意思 是什么 c

Socket到底是什么?java中bs开发和cs开发相结合的程序,为什么要这样结合呢是bs中有cs无法作到的,还是cs有bs无法做到的

admin admin 发表于2022-07-04 20:01:52 浏览96 评论0

抢沙发发表评论

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向服务器索要与自己相关的内容。

明白未?

java中bs开发和cs开发相结合的程序,为什么要这样结合呢是bs中有cs无法作到的,还是cs有bs无法做到的


首先你该知道bs是什么,cs是什么..
bs就是浏览器客户端+server的模式;cs就是本地客户端(一般为桌面客户端)+server的模式;

bs的开发需要什么呢? 因为是运行在浏览器上,那么肯定需要网页即html页面,jsp只是web服务器用来动态生成html的东西,显而易见了,jsp的好处就是可以动态生成页面,就比如从数据库中查询成绩列表,将这些列表动态的注入到jsp页面中,便得到了想要的页面了。

cs的开发需要什么呢?因为它不需要运行在浏览器上,那么是不需要网页的,但这样却没有可以用来执行操作的界面了,于是所有的界面必须全部自己实现,在java里面可以用swing或swt/JFace组件库来实现。

bs和cs的差别,你打开一个网页,然后打开一个桌面窗口例如360的,然后看看有啥不同..
很明显了,网页是由浏览器去执行解析和显示的,其遵循一定的语法,开发起来也相对容易,但这样却做不了浏览器能力以外的事情了。然而cs的情况下你的客户端是桌面客户端,缺乏了浏览器的支持,于是实现起来相对费劲些,但它能做许多浏览器无法做的东西。

可以这样理解,cs客户端与浏览器一样都是操作系统的桌面程序,而bs则是在浏览器基础之上所做的定制(姑且说成定制),从能力和扩展性来讲cs要强一些,但cs开发起来较为繁杂。

大概是这样了,希望能让你有点理解了~~

window.location.href和window.location.replace的区别


window.location.href=“url”:改变url地址window.location.replace(“url”):将地址替换成新url,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL
-c