周末放假没带电脑所以今天分享质量不高,手机没有那些样式看起来可能没有那么方便,今天主要分享一下websocket。

(赶紧拿小本本记下来)

websocket 你发现是一个组合单词web socket,web我们都知道,所以我们先说下socket,什么是socket它在c#里面是什么?

他在c#里面用于网络编程比如实时聊天,他的原理是什么呢?在我们没有用这种技术的时候我们想要实现不停的问服务器要资源我们使用的是轮询,什么是轮询呢?

(脑阔痛)

轮询 轮询就是循环的访问访问服务器,就是写一个循环发送我的请求,如果请求完成了,不管有没有数据给我,我再次发送,发送完了我又发送,这种模式就是轮询。

后面出现一种技术叫socket,但是在窗体程序很久很久以前就出来了,但是现在我们说的是web socket那么也是同样的道理,我们以前通过ajax来使用轮询进行访问请求数据库给我们数据,到现在使用web socket技术,我们只需要发送一次请求,告诉服务器"你好,我们这里一直要用数据,你有的话就给我们吧,没有的话你有了再发给我吧"这就是websocket的请求方式。 以前的请求方式比如[轮询]你不懂得话没关系我给你打个比方

{

客户端“你好,给我来鱼丸粗面”

服务器“没有鱼丸”

客户端“那给我来一碗鱼丸汤”

服务器“没有鱼丸,鱼丸还在买”

客户端“那给我来一碗粗面”

服务器现在有粗面“你好,您的粗面”

客户端“老板来点鱼丸”

服务器“没有,滚,下一位”

客户端“来点鱼丸”

服务器“没有鱼丸啊”

客户端“来点鱼丸”

服务器刚买到我鱼丸“哪切嘛,吃嘛鱼丸,胀死你”

客户端“老板来点。。。”

服务器“。。。”

}这种方式就是轮询,客户端不停的发送请求给服务器,请求服务器响应。

轮询 缺点:占用服务器资源如果人多服务器容易宕机。

socket:这种方式他就解决了这个问题,当服务器有数据直接推给客户端,这种场景就是qq或者是通知,有消息直接推送,不再让客户端一直请求,但是需要客户端发起请求命令才行。

(当时我大概写了这么多

浅谈websocket和c# socket(新手篇)的更多相关文章

  1. 【ASP.NET MVC系列】浅谈Google Chrome浏览器(操作篇)(下)

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  2. 浅谈Websocket、Ajax轮询和长轮询(long polling)

    浅谈Websocket.Ajax轮询和长轮询(long p0ll) 最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket W ...

  3. 浅谈WebSocket

    WebSocket是H5提出的为了解决客户端和服务器双工通信的方法.在我们使用HTTP协议通信时,客户端主动向服务器发送请求,得到服务器端数据.为了与服务器端数据保持一致,之前常用的有轮询和长轮询两种 ...

  4. 浅谈Linux环境下Socket选项的设置

    0.前言 TCP/IP协议栈是Linux内核的重要组成部分和网络编程的基石,虽然Linux和BSD有很大的联系,但是对于某些Socket选项和内核操作仍然存在差异,因此文中适用场景均为CentOS环境 ...

  5. 浅谈Websocket、Ajax轮询和长连接(long pull)

    最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket Websocket是HTML5中提出的新的协议,注意,这里是协议,可以 ...

  6. 浅谈Google Chrome浏览器(操作篇)(上)

    开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...

  7. 浅谈Google Chrome浏览器(理论篇)

    注解:各位读者,经博客园工作人员反馈,hosts涉及违规问题,我暂时屏蔽了最新hosts,若已经获取最新hosts的朋友们,注意保密,不要外传.给大家带来麻烦,对此非常抱歉!!! 开篇概述 1.详解g ...

  8. 【ASP.NET MVC系列】浅谈NuGet在VS中的运用

    一     概述 在我们讲解NuGet前,我们先来看看一个例子. 1.例子: 假设现在开发一套系统,其中前端框架我们选择Bootstrap,由于选择Bootstrap作为前端框架,因此,在项目中,我们 ...

  9. 【ASP.NET MVC系列】浅谈表单和HTML辅助方法

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

随机推荐

  1. Linux下配置yum

    [一]用本地文件创建本地yum源 1. 创建iso存放目录和挂载目录 mkdir /mnt/iso mkdir /mnt/cdrom 2. 将iso镜像文件上传到/mnt/iso文件夹下 3. 将/m ...

  2. A - ACboy needs your help again!

    ACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image how dark th ...

  3. javascript(作业九)

    1.javascript简介: JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端 ...

  4. 第30节:Java基础-内部类

    内部类 // 外部类 class Demo{ private int num = 3; // 定义内部类 class Int{ void show(){ System.out.println(&quo ...

  5. react写一个todo

    概述 最近学习redux,打算先复习一下react,所以用react写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 代码 代码请见我的github 组织架构如下图:

  6. Nginx的安装与部署

    1:安装工具包 wget.vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc g ...

  7. IDEA 图标介绍。 缓存和索引介绍、清理方法和Debug使用

    一.图标 二.缓存和索引 IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找.代码提示等操作的速(上图中的图标能这样显示也是靠索引).某些特殊条件下,IntelliJ I ...

  8. Spring Boot 1.5.10 发布:修复重要安全漏洞!!!

    2018/01/31,Spring Boot团队发布了Spring Boot 1.5.10. Maven: <parent> <groupId>org.springframew ...

  9. python 变量进阶(理解)

    变量进阶(理解) 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引 ...

  10. nRF52832 矩阵按键调试 同一列上的按键 任意两个按键 按下 检测不到低电平(电平拉不下来)

    参考链接:https://blog.csdn.net/zhanghuaishu0/article/details/78505045 调试过程中发现 同一列上的按键 任意两个按键 按下 检测不到低电平( ...