摘要:
什么是Referer? Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer 。比如我在www.sojson.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,
阅读全文
posted @ 2021-09-09 18:03
宏宇
阅读(1237)
推荐(0)
摘要:
C# 使用 ClientWebSocket 实现 WebSocket 客户端 C# Net Core 使用 ClientWebSocket 实现 WebSocket 客户端 Net Core 使用 ClientWebSocket 实现 WebSocket 客户端 我们模仿HTML5的实现方式来重写一
阅读全文
posted @ 2021-09-03 19:09
宏宇
阅读(2568)
推荐(1)
摘要:
WebSocket WebSocket协议是一种双向通信协议,它建立在TCP之上,同http一样通过TCP来传输数据,但是它和http最大的不同有两点: WebSocket是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/UA都能主动的向对方发送或接收数据,就像Socket
阅读全文
posted @ 2021-09-03 17:48
宏宇
阅读(3078)
推荐(1)
摘要:
公司项目使用WebSocket作为主要的请求方式,知其然也要知其所以然,会用也需要知道它的基本原理,所以写此文章分享下自己的浅见,文章主要包括以下内容: WebSocket是什么 WebSocket和Socket区别 建立连接 数据帧格式 发送数据 聊天Demo代码: github.com/mada
阅读全文
posted @ 2021-09-03 17:43
宏宇
阅读(317)
推荐(1)
摘要:
在WebSocket规范提出之前,开发人员实现实时性较强的功能基本采用两种轮询方法:轮询(polling)和Comet技术。 轮询:轮询技术要求客户端以设定的时间间隔周期性地向服务端发送请求,频繁地查询是否有新的数据改动。明显地,这种方法会导致过多不必要的请求,浪费流量和服务器资源。 Comet技术
阅读全文
posted @ 2021-09-03 17:41
宏宇
阅读(284)
推荐(0)
摘要:
前端代码 form id="form1" runat="server"> <div> <input id="userName" type="text" /> <input id="conn" type="button" value="连接" /> <input id="close" type="bu
阅读全文
posted @ 2021-09-03 17:40
宏宇
阅读(151)
推荐(0)
摘要:
操作系统Windows8或以上 using System; using System.Net.WebSockets; using System.Text; using System.Threading; class Client { static void Main( string [] args)
阅读全文
posted @ 2021-09-03 16:48
宏宇
阅读(1532)
推荐(0)
摘要:
1 WebSocket 原理 1.1 背景 WebSocket 是基于Http 协议的改进,Http 为无状态协议,基于短连接,需要频繁的发起请求,第二 Http 只能客户端发起请求,服务端无法主动请求。 1.2 相同点 都是基于TCP的应用层协议。 都使用Request/Response模型进行连
阅读全文
posted @ 2021-09-03 16:44
宏宇
阅读(2253)
推荐(0)
摘要:
1.以下代码实现一个webSocket连接,在文本输入框中输入内容,点击发送,通过服务器,返回相同的内容显示在下方。 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>WebSocket</
阅读全文
posted @ 2021-09-02 15:33
宏宇
阅读(547)
推荐(0)
摘要:
总结 先放结论:datagrid的刷新方式: 重新绑定 ,全部刷新,最常用的,都知道 datagrid.itemsSource=null; datagrid.itemsSource=list; 但有些时候不方便重新绑定,于是 针对数据源有增删,需要实时显示 将datagrid绑定的list<obje
阅读全文
posted @ 2021-09-01 16:39
宏宇
阅读(1887)
推荐(0)
摘要:
理论上WPF程序需要修改的是数据源而不是修改控件值,修改数据源后是否需要编写重新绑定代码? 你这个是从其它的UI框架(例如asp.net)套用来的习惯。 真正的做法,是不要去遍历控件的 Items,应该去访问你的数据源。再设计 UI 控件时,开发者保证它与数据源(例如实现了 ObservableCo
阅读全文
posted @ 2021-08-31 23:49
宏宇
阅读(913)
推荐(0)
摘要:
windows10 下各浏览器userAgent版本号自行理解 8 -。- 浏览器userAgent Chrome Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396
阅读全文
posted @ 2021-08-27 17:42
宏宇
阅读(2516)
推荐(1)
摘要:
string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); foreach (char c in invalid) { illegal = illegal.
阅读全文
posted @ 2021-08-23 19:15
宏宇
阅读(591)
推荐(0)
摘要:
task好像没有在线程外取消任务的操作,没有类似于Thread.Abort();这样停止线程的操作,当然,也可以在task生成时,把task所属的线程记录下来,然后用Thread.Abort()停止,因为task本身也是附属与这个线程的,线程停了,task肯定也停了,不过这样那还不如直接用Threa
阅读全文
posted @ 2021-08-20 09:24
宏宇
阅读(1356)
推荐(0)
摘要:
在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于 “任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别? 1:任务是架构在线程之上的,也就是说任务最终还是要抛
阅读全文
posted @ 2021-08-19 20:39
宏宇
阅读(170)
推荐(0)
摘要:
区别在于Invoke是同步,BeginInvoke是异步。 打个比方(伪代码),后台线程中需要通知UI界面进行刷新 new Thread() { /* 比如读取数据库的方法,比较耗时; var data = GetData(); 读取完成后通知UI线程, this.Invoke(data); //如
阅读全文
posted @ 2021-08-18 22:41
宏宇
阅读(1369)
推荐(1)
摘要:
一、什么是异步 同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。 异步的好处在于非阻塞(调用线程不会暂停执
阅读全文
posted @ 2021-08-18 19:12
宏宇
阅读(646)
推荐(0)
摘要:
普通的async await方法其实是一个同步的异步调用,此方式并不开启新的线程,只是一个多任务处理模式,只是主线程在运行时不会阻塞卡死。此方式只能调用异步方法。 (使用async和await定义异步方法不会创建新线程,所以使用Thread.Sleep(3000)主线程也会阻塞卡死) (由于不是开始
阅读全文
posted @ 2021-08-18 18:51
宏宇
阅读(4509)
推荐(0)
摘要:
本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一、引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了
阅读全文
posted @ 2021-08-18 16:56
宏宇
阅读(294)
推荐(0)
摘要:
DataGrid 绑定 DataTable:界面: <Window x:Class="DataGridBindDataTable.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x
阅读全文
posted @ 2021-08-17 18:07
宏宇
阅读(1648)
推荐(0)