自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (7)
  • 收藏
  • 关注

原创 C# 利用ICMP协议实现Ping功能

注意:linux环境下运行:var socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);可能会因为权限不够,报错:临时解决办法可以使用sudio 提升运行权限,或者给当前用户socket权限;.net core中有Ping类可以实现Ping功能;ICMP协议数据包收发。

2023-04-19 17:37:24 949 1

原创 Vagrant 安装 Centos7

去官网上下载Centos7 的VirtualBox镜像,重命名为一个简短的名称,如centos7.box;再次下载Vagrant windows版本:当前实验版本:vagrant_2.3.4_windows_i686。安装过程中提示重启电脑。

2023-01-01 22:17:19 2627

原创 Microsoft.Xaml.Behaviors绑定ListView 事件

.NET Core 6.0 开发WPF应用程序,使用Microsoft.Xaml.Behaviors事件绑定

2022-12-02 10:59:50 1363

原创 Nginx 代理https

利用Nginx 代理https 转到访问本机 http 的访问,首先需要有证书:手头开发环境下使用了自签名工具生成pfx证书文件;另外一个错误:PEM_read_bio_X509_AUX() failed (SSL: error:0906D06C )注意ssl协议的版本:例如修改成 ssl_protocols TLSV1 TLSv1.1 TLSv1.2;接着找一个在线的证书格式转化工具,将pfx格式证书提前公钥和私钥。Nginx 配置文件检查:nginx -t;启动Nginx : start nginx。

2022-10-29 23:01:18 7540 1

原创 Ocelot API 网关Nacos 服务发现

Ocelot API 网关Nacos 服务发现

2022-10-29 22:41:04 1388

原创 MQTT 协议剩余长度计算C#版

中固定头部中byte2 标识包的剩余长度, 单个byte最大能表示127的包长度,最高为标识位,1代表借用后续字节来标识包长度。

2022-09-20 11:39:55 385

原创 Winform宿主Asp.Net WebApi中Owin 自定义Token请求参数

此后继续Owin框架的功能流程不变;其中grant_type和username、password为固定的参数,且grant_type固定为"password",否则请求token不成功;步骤2把如上两个文件粘贴到项目中,重命名如MyOAuthAuthorizationServerHandler和。例如选用BearerToken验证利用Asp.NetOwin实现基本套路为(宿主Winform程序为例)重点来了,如果希望改变获取Token的参数,该如何处理呢?其他相关依赖包自动下载;......

2022-07-28 16:25:00 1633

原创 WPF:解决MaterialDesign:DialogHost 无法关闭问题

使用MaterialDesion 开发WPF应用程序:做有遮罩的弹窗效果.

2022-06-24 10:20:14 2036 1

原创 linux开启关闭Spring进程脚本

开启脚本:# 获取当前路径export current_path=$(pwd)# 日志文件的路径export log_path=$current_path/logFiles# nohup java -jar 不挂断(后台执行)启动java进程# $1 传递过来的参数:比如dev\uat\prodmain(){nohup java -jar -Dspring.profiles.active=$1 $current_path/iApp-demo-0.0.1-SNAPSHOT.jar &g

2022-05-17 17:32:56 284 1

原创 MarinaDB 存储过程批量写入表

思路:java程序端传递固定字符隔开的json 字符串,Sql 分割字符串,得到单个json对象,解析json字段,循环写入数据库表:实现过程如下:CREATE DEFINER=`root`@`%` PROCEDURE `proc_InsertParamsSource`( IN `dataString` LONGTEXT)LANGUAGE SQLNOT DETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT '批量写入数据源'BEG

2022-05-17 15:45:04 363

原创 SpringMVC 基于注解的配置

开发工具:IntelliJ IDEA 2021.3.3 (Community Edition)项目结构:前端使用了AdminLTE框架Marven 依赖:spring-webmvc及thymeleaf-spring5基于注解的方式替代web.xml配置文件主要有如下几个类:import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;p.

2022-05-04 17:37:24 2066

原创 基于HostLink协议的Fins命令读写

初次接触HostLink,比较难理解:Fins、FinsTcp、HostLink的区别和关系。个人理解:Fins 同FinsTcp是两个不同的协议,Fins(factory interface network service)是一个单独的协议,可以在主机和PLC通讯中,利用HostLink协议收发Fins指令(FINS commands can be sent and received using the Host Link protocol between interconnected host comp

2022-04-25 11:22:54 1935

原创 Postman中Basic Auth验证

也可以直接在Headers中新增一个Key: Authorization, Value: Basic xxxx:如下图所示:Basic 后面为user:password形式的Base64加密字符串,中间有一个空格:Base64加密:var plainTextBytes = Encoding.UTF8.GetBytes("admin:1234"); string baseResult= System.Convert.ToBase64String(plain..

2022-04-22 18:31:53 5972

原创 C# WaitAny WhenAny的区别

看代码 var task1 = stream.ReadAsync(bytes, 0, 4); var task2 = Task.Delay(3000); var taskfinal = Task.WaitAny(task1, task2); if (taskfinal==0) { Console.WriteLine($"task1完成");

2022-04-01 17:36:10 515

原创 ASP.NET Core Blazor 表单自定义验证

Blazor框架的表单验证方便快捷:EditForm+模型绑定+数据注解(Data Annotations)自定义表单验证可以支持更加复杂的输入验证规则,学习体验如下:实现的效果如下图所示:如果输入的不是qq邮箱,或者 选择某个类型时,描述必填的业务验证:实现的代码如下:1:模型数据注解添加: public class DemoDataModel { [Required(ErrorMessage ="名称不可为空")] [Strin.

2022-03-21 16:47:15 1099

原创 Asp.Net Core Blazor 开发体验

Blazor是一个使用.NET开发交互式Web UI客户端的框架(Blazor is a framework for building interactive client-side web UI with .NET.)优势是:使用C#替代Javascript开发富交互式UI界面, 浏览器的广泛支持,可充分利用.NET库及生态。直接开发体验完成一个.

2022-03-16 11:44:21 2406

原创 SQL Server并发事务中的锁定

Sqlserver中的事务具有原子性(Atomicity),一致性(Consistemcy),隔离性(Isolation),持久性(Durability)等特性。事务存在隔离级别的概念,有如下可设置的级别:  READ UNCOMMITTED  READ COMMITTED(默认)  REPEATABLE READ  SERIALIZABLE使用如下指令DBCC Useroptions可查看当前的事务隔离级别:Set Option Value isolation level

2022-02-28 14:40:28 1314

原创 C# 指定bit位取反

例如:一个二进制数:100100 从低位开始第三位取反,即变成:100000则可这样做:步骤1:将0x01 左移三位, 变成:000100;步骤2:再将步骤1得数取反:111011;步骤3:最后拿原来的数同步骤2的数做按位与&操作;换成代码为:int targetIndex=3;int originalNum=24;//(二级制:100100)int temp= 0x0001 << targetIndex;int result =originalNum..

2022-02-10 10:28:21 3153 1

原创 Eclipse下Hibernate使用学习

1:Hibernate 开发包引入:至官网下载所需版本的开发包,将加压后的jar包引入项目中:src/main/webapp/WEB-INF/lib/2:Hibernate tool安装查看Elipse版本,Help >About Eclipse,然后到JBoss Tools - Home官网找到对应Eclipse版本的安装链接:例如:Index of /jbosstools/photon/stable/updates回到Eclipse中,Help>Instal...

2022-01-20 17:08:14 793

原创 Struts2框架学习

1:引用struts2的类库文件,搭建好项目:新建java web项目,去struts官网下载所需版本。本例为:2.3.37版本。将所需structs2 jar文件粘贴到WEB-INF/lib文件夹下。在src/main/java 文件夹下新增struts.xml文件:关键的写法为:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundatio

2022-01-11 10:35:40 154

原创 windows下frp socket内网穿透体验

步骤1:下载windows平台下的frp程序:https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_windows_amd64.ziphttps://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_windows_amd64.zip步骤2:在阿里云服务器上,启动frp服务器端:解压步骤1的frp程序,找到frps.ini配置文件[..

2021-12-13 12:42:18 1272

原创 The SQL Server licence agreement cannot be loacted for the Selected edition,EVAL.

window server 2019的英文操作系统上安装Sqlserver 2012版本提示这个错误:The SQL Server licence agreement cannot be loacted for the Selected edition,EVAL.This could be a result of corrupted media or the edition being unsupported by the media.Error code:0x858C001B.解决办法:把wind

2021-12-01 11:06:38 2250

原创 App.config 中assemblyBinding引用路径设置

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="myLibs;myLibs\Newtonsoft.Json;" /> </assemblyBinding> </runtime>使用上面的配置可以把项目中第三方的dll引用,分门别类放在某个文件夹中,程序...

2021-11-29 15:18:13 1139

原创 VS 生成事件copy已退出,代码为1

在项目属性中的“生成事件”->"生成后事件命令行"写入如下dos指令:copy $(TargetPath) D:\share\ZLNF\my.client.dll提示错误命令“copy C:\Program Files\MyTest\Applications\my.client.dll D:\share\ZLNF\my.client.dll”已退出,代码为 1。排除权限问题后,是因为上面的路径太长导致,添加双引号,问题解决:即为:copy "$(TargetPath)" "D:\s..

2021-11-29 15:06:11 1477

原创 WPF自定义字体

步骤1:在项目中添加自定义字体文件:设置字体文件属性为:Resource :步骤2:在App.xmal中或者其他合适的地方引入资源: <Application.Resources> <ResourceDictionary> <FontFamily x:Key="HgFont">Resource/Font/#方正兰亭黑简体</FontFamily> ..

2021-08-25 10:28:53 2830

原创 WPF 自定义控件编写例子

WPF 中要写一个自己的控件,可以选择“用户控件”(派生自UserControl)或“自定义控件”(派生自Control类或其子类)。用户控件就像创建一个窗体或页面一样,有一个XAML文件和对应的.cs隐藏文件。如果是添加自定义控件,会看到一个.cs 文件和 themes\generic.xaml。这里写一个小例子,说明下WPF自定义控件的开发过程。...

2021-08-25 09:41:14 1056

原创 C# OPC UA 客户端开发

OPC UA(OPC Unified Architecture)是为了在工业自动化等行业安全可靠地进行数据交换而制定的开放式国际标准规格。由OPC Foundation于2008年发布,之后制定了国际标准IEC62541.跨越设备的种类、操作系统(OS)、制造商的壁垒,可以安全地进行高可靠性的数据交换,作为标准通信协议得到了工业4.0的推荐。https://opcfoundation.org/OPC UA开发首先需要一个服务器端:这里使用KEPServer来模拟。首先下载并安装KepServer,基本.

2021-08-06 14:33:04 21484 32

原创 C# base64URL编码

C#中有对应的Base64处理函数:例如把byte[] 转成base64字符串Convert.ToBase64Stringbase64是用64个字符来表示任意二进制数据的方法,它对二进制数据进行处理,它把每6bit前缀补0转成8bit后,再查base64字符表得到转化后的结果。base64编码所用的64个字符为:A-Za-z0-9+/base64URL编码基于base64编码,把字符+和/分别变成-和_。同理:还有base58, base58去掉了0(数字0)、O (大写字母O)、I (大.

2021-07-27 09:41:46 2414 1

原创 C# HttpSelfHostServer (413) Request Entity Too Large

var config = new HttpSelfHostConfiguration(App.Config["webAPIURL"]); config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); config.Formatters.JsonFormatter.SupportedMediaTypes.Add(ne...

2021-07-15 12:50:23 1157

原创 SQL Server数据插入表后数据顺序变化

如下图所示:把第一列的大批量40万笔数据插入到数据库的表中表的定义如下:CREATE TABLE [dbo].[NKey]( [NKey] [varchar](100) NOT NULL, [DataSourceId] [int] NOT NULL,CONSTRAINT [PK_NKey_1] PRIMARY KEY CLUSTERED( [NKey] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF...

2021-04-15 13:01:06 1789

原创 WCF Restful API 宿主Winform程序

一个后台服务,同时提供Socket服务器端角色,也要提供Restful API接口, 还得提供桌面客户端的应用接口服务,想到了WCF服务,用起来也没有问题。这里关注WCF 的 Rest API 支持。首先建立一个winform程序,Form_Load中启用 WCF服务。 var httpHost = new ServiceHost(typeof(APIService)); httpHost.Open();App.config配置如下:<?xml ve

2021-02-02 16:07:13 722

原创 WPF DataGridTextColumn显示隐藏Binding

先定义一个数据代理: public class BindingProxy : Freezable { protected override Freezable CreateInstanceCore() => new BindingProxy(); public object Data { get => GetValue(DataProperty); set => SetVal.

2020-12-17 17:01:19 2155

原创 C# WCF 多服务接口开发

配置文件写法: <services> <service name="arManagement.arManage"> <endpoint address="net.tcp://localhost:8008/arManageService" binding="netTcpBinding" bindingConfiguration="" contract="domain.IArManageService" /> .

2020-09-18 11:22:57 886

原创 WPF GridLength折叠动画+ GridSplitter 拖拽布局

如下图所示一个布局:点击向左按钮,折叠树形导航菜单面板,拖拽左右分割滑块(WPF里叫GridSplitter)可以调整区域分割宽度.界面样式选用了Materail DesginUI ,十分好用,外观漂亮,开发常规需求,足够使用了。Xmal中的布局,其中有一列"menuLeft" 双向绑定了ViewModel里的MenuWidth属性, GridSplitter左右拖拽时动态改变了MenuWidth属性值;<Grid Grid.Row="2"> &

2020-09-16 11:29:06 3209 2

原创 WPF MaterailDesign TreeView节点默认全部展开

加载TreeView后默认节点全部折叠;<TreeView x:Name="treeView" Grid.Row="0" Foreground="White" ItemsSource="{Binding NavMenus}" MinWidth="220"> <TreeView.Resources> <HierarchicalDataTemplate DataType="{x:Type domain.

2020-09-04 11:01:27 1251

原创 WPF TreeView Material Design 数据双向绑定

利用Prism 搭建的一个WPF MVVM框架,导入了Material Design UI库,在实现TreeView时费了点周折,记录于此。Xaml的写法如下:需要应用命名空间:xmlns:domain="clr-namespace:management.wpfUI.Models" xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:i="clr-...

2020-09-03 17:26:45 1195

原创 Could not load file or assembly log4net, Version=1.2.13.0

System.IO.FileLoadException: Could not load file or assembly 'log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Except

2020-06-20 19:46:11 1741

原创 Halcon里的9点标定

所谓“标定”就是为了得到数学里的一个矩阵关系。空间中一点(x,y,z) 到空间中另外一点(x1,y1,z1)可以经过平移,旋转重合。这个平移和旋转的过程(仿射变换)被记录在矩阵关系中(齐次矩阵)。例如下面简单的Halcon代码(二维变化) hom_mat2d_identity (HomMat2DIdentity) tx:=20 ty:=30 * 平移20,30像素 hom_mat2d_translate (HomMat2DIdentity, tx, ty,

2020-05-24 16:39:09 21694 4

原创 C# Task.Delay替代 Thread.Sleep()

网上有很多讨论 Thread.Sleep()替代写法的文章,这里翻阅了《C#本质论》找了如下文字:一个可替代写法如下 public static void Sleep(int miniSeconds) { Task.Delay(miniSeconds).Wait(); }或者如下面的代码:var sw = new Stopwatch();sw.Start();Task delay = Task.Delay(5000);C

2020-05-08 21:38:34 5440

原创 程序员如何剪辑视频

经常需要把操作步骤录屏或者好玩的东东拍摄下来分享给别人,如何简单剪辑编辑视频呢?作为一名IT工程师,学习剪辑也是十分容易的事,尤其有开发经验,对应软件设计功能的原理也有更深的体会。废话不多说,直接开始剪辑视频。如果是新手,不要想太多,常用的步骤就是下面几步,对照做就可以:1:下载After Effects;2:新建一个项目,Ctrl + Alt +N ,类似开发写代码要新建工程项目;...

2020-04-24 09:02:22 2027

asp.net core 5.0 blazor 增删改查基本开发

基于asp.net core 5.0 blazor 增删改查基本开发

2022-03-16

利用JS+CSS实现滚动表格数据展示

利用CSS动画制作 Html 表格数据滚动显示, 实际自己开发也不难实现。实现的方法很多,下面是本人的一种实现方案,分享给大家。

2019-06-06

webpack结合vue多页应用开发基础框架

基于webpack的 vue应用开发出多页面应用系统,适合移动端,桌面端应用开发。下载后执行cnpm install,然后npm run dev运行,打开浏览器: 访问localhost:8080就可以看到效果

2019-06-02

js实现的Muti TabPage切换

在很多后台管理系统中,有类似多个TagePage切换页的效果,这里是一个js实现的版本,可以实现TabPage 翻页,切换Tab选项卡,新增Tab,删除Tab等,供学习了解之用!

2018-09-21

WPF InkCanvas笔画圈选移动功能

项目开发需要,用到了WPF原生提供的InkCanvas控件,也有叫水墨控件。 需要开发的功能为鼠标光标随意圈选笔画,选中完成后移动圈选的笔画到画布其他地方,本人原创代码,供参考!

2018-07-26

Excel.dll Asp.Net

【注:在VS.Net中运行是要添加Excel.dll组件的,Excel组件VS.Net本身是没有的,下面是生成Excel.dll的方法。】 1.要保证机器本身要安装OFFICE. 2.把[C:\Program Files\Microsoft Office\Office:默认安装路径]下的EXCEL9.OLB文件拷贝到[C:\Visual Studio.Net\SDK\v1.1\Bin:VS.Net安装路径]路径下。 3.打开Visual Studio .Net2003命令提示,运行TlbImp Excel9.olb Excel.dll ,就会在[C:\Visual Studio.Net\SDK\v1.1\Bin]下生成Excel.dll组件。 4.在项目中添加Excel.dll引用就OK了。

2009-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除