.Net Framework

自建Socket转发,使用远程桌面(mstsc)连接家中电脑

折月煮酒 提交于 2021-02-19 08:07:10
原文: 自建Socket转发,使用远程桌面(mstsc)连接家中电脑 网络结构图如下: 开题先放图,一切全靠编哈哈。 进入正题! 如图所示,我们需要一个公网服务器,利用公网服务器将内网的数据进行转发,从而实现两个内网服务器的通讯。没错,这不是p2p,原本想做成p2p,因为有点难度,所以先弄一个tcp数据包转发,后面再来打洞进行p2p连接。 开发环境 VS2017 + asp net core2.1 + .net framework 4.5 整个过程是如何实现的呢? 1.被控客户端启动,发送被控端名称,例如:Home 2.服务器接收到被控端的数据,将Home记录,并将Home绑定到当前Tcp连接 3.主控端启动,发送要连接的“被控端服务”名称,例如:Home 4.服务端接收到主控端的请求,查询Home对应的Tcp连接 5.将从主控端来的数据转发到被控端,将被控端来的数据转发到主控端 代码在哪? 放到github上了: https://github.com/bobowire/Wireboy.Socket.P2PService 在实现的过程中遇到什么问题了? 1.由于windows锁屏后,Console.WriteLine方法会进行无限期等待,导致程序卡住不动。 解决办法:在运行后,将所有的Console.WriteLine方法全部注释掉了。 2.在连接一次之后

自建Socket转发,使用远程桌面(mstsc)连接家中电脑

蹲街弑〆低调 提交于 2021-02-19 08:06:58
网络结构图如下: 开题先放图,一切全靠编哈哈。 进入正题! 如图所示,我们需要一个公网服务器,利用公网服务器将内网的数据进行转发,从而实现两个内网服务器的通讯。没错,这不是p2p,原本想做成p2p,因为有点难度,所以先弄一个tcp数据包转发,后面再来打洞进行p2p连接。 开发环境 VS2017 + asp net core2.1 + .net framework 4.5 整个过程是如何实现的呢? 1.被控客户端启动,发送被控端名称,例如:Home 2.服务器接收到被控端的数据,将Home记录,并将Home绑定到当前Tcp连接 3.主控端启动,发送要连接的“被控端服务”名称,例如:Home 4.服务端接收到主控端的请求,查询Home对应的Tcp连接 5.将从主控端来的数据转发到被控端,将被控端来的数据转发到主控端 代码在哪? 放到github上了: https://github.com/bobowire/Wireboy.Socket.P2PService 在实现的过程中遇到什么问题了? 1.由于windows锁屏后,Console.WriteLine方法会进行无限期等待,导致程序卡住不动。 解决办法:在运行后,将所有的Console.WriteLine方法全部注释掉了。 2.在连接一次之后,再次连接会因为接收函数的超时时间太长,导致后面连接失败 解决办法:增加守护线程

android --------System.err: java.net.UnknownServiceException: CLEARTEXT .....

余生长醉 提交于 2021-02-19 02:28:30
1,当调用远程接口进行网络通信时,报如下错误: W/ System.err: java.net.UnknownServiceException: CLEARTEXT communication to 10.240.35.113 not permitted by network security policy 这是因为新的保护机制对于仅使用安全通信的应用,Android 6.0 Marshmallow(API 级别 23)引入了两种机制来解决回退到明文通信的问题:(1) 在生产/安装库中,禁止明文通信,以及 (2) 在开发/QA 期间,在遇到任何非 TLS/SSL 通信时,予以记录或者触发崩溃。下文将更详细地介绍这两种机制。 2,解决方法: 如果一定要使用明文通信的话,则可以打开AndroidManifest.xml 文件,在 application 元素中添加: android:usesCleartextTraffic=” true ” 备注: 1)为了安全,不建议上面的使用明文的通信方式,不过上面的这种方法可以作为一种临时的通信策略 2)如果声明不使用明文通信,则可以在application元素中添加: android:usesCleartextTraffic=” false ” 此声明指示该应用不使用明文网络通信,并使 Android Marshmallow

android -------- java.net.UnknownServiceException

我的梦境 提交于 2021-02-19 01:58:30
最近升级了Android的API版本时 ,导致我的网络请求失败了, 出现了这个错误 java.net.UnknownServiceException, 这个错误,我在网上查到这个主要是由于,我们的OkHttp3会默认使用密文传输,而我们的代码中使用Http协议,也就是使用明文传输,所以OkHttp3会主动的报错,然后阻止线程的运行。所以我们现在就是要修改配置文件,使OkHttp3允许使用明文传输,或者我们直接使用Https协议。 解决方法: 在 res 下新建一个 xml 目录,然后创建一个名为:network_security_config.xml 文件 该文件内容如下: <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config> 然后在 AndroidManifest.xml application 标签内应用上面的xml配置: <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android

上周热点回顾(2.12-2.18)

白昼怎懂夜的黑 提交于 2021-02-19 01:56:12
热点随笔: · PowerShell 并行执行任务 ( sparkdev ) · IT连创业系列:年终回顾录! ( 路过秋天 ) · 国外程序员陋习,写在农历狗年前 ( 麦克*堂 ) · 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go ( KAnts ) · 万类之父——Object ( OKevin ) · 数学对于人类意味着什么 ( 窗户 ) · 程序猿年终总结:我看了我的这7年 ( 小八路 ) · 如何使用 Bootstrap 搭建更合理的 HTML 结构 ( 叙帝利 ) · 发放春节福利,ASP.NET Core断点续传 ( Jeffcky ) · .NET Core版本七牛云SDK使用 ( OMango ) · .NET下使用socket.io随笔记录 ( OMango ) · 上周热点回顾(2.5-2.11) ( 博客园团队 ) 热点新闻: · 90后海归美女回家当农民 无人机种地月入10万 · 深圳90后程序员:周末加班省电费 满脑子都是买房 · 99%的黑客都盯上了数字货币,一条完整产业链悄然形成 · “码龄”最长程序员出现,今年已经73岁 · 天文学家确定特斯拉跑车运动轨迹:真的在往火星飞 · iOS为什么越做越差?苹果前员工点破真相 · 人脸识别有歧视?识别准确率黑人比白人差很多,厂商们这样回应 ·

上周热点回顾(2.11-2.17)

本小妞迷上赌 提交于 2021-02-19 01:44:21
热点随笔: · 做了十年的程序员,为什么我没有加班 ( 自由飞 ) · 可能再不会有人像我一样写了 2000 行代码美化博客界面 ( Conmajia ) · 迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库。 ( 陈鑫伟 ) · 我是如何在毕业不久只用1年就升为开发组长的 ( 李新杰 ) · .NET 开源项目 Anet 介绍 ( Liam Wang ) · 我没回老家过春节的那4点原因 ( 沉默王二 ) · 情人节,送女友一桶代码可否? ( 美码师 ) · 我的十年创业路 ( 初码 ) · 一文助您成为Java.Net双平台高手 ( 莱布尼茨 ) · 2019年计划 ( 仗剑走天涯| ) · Ocelot 资源汇总 ( 张善友 ) · 面对人生这道程序,该如何编码? ( mindwind ) 热点新闻: · 10000人集体给豆瓣打0分:不要再给我们喂屎了 · 盗版风暴:大年初三,我已经下载好全部春节档电影 · 为什么不能给《流浪地球》打一星? · 印度铁路部长发视频炫耀国产“高铁”,被网友发现2倍速播放 · “阿里离职漂亮美女高管”文章刷屏|前同事:吹牛要有度 几年前被裁 · 八大巨头狂掷43亿撒的红包,正在毁掉我们的春节? · 华为博士员工平均离职率21.8%:英雄为何无用武之地 · 科大讯飞节后继续裁员 员工指责公司管理混乱、产品质量差 ·

【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(一)

会有一股神秘感。 提交于 2021-02-18 15:26:55
一 前言 以往公司开发的地理信息系统数据都是存储在oracle中,然而在地图数据的分析和计算中一直存在不小的问题,所以今次我们尝试使用PostgreSQL+PostGIS来解决这一问题。 本篇笔记的目的就是记录在研究这一开发路径期间的“学习的内容”、“遇到的问题和解决过程”以及“简单的实践内容”以备忘。 笔记中可能会出现部分术语概念不准确,还请您能耐心指正或者忽略,反正这是为了我自己能看懂的笔记,你爱看不看。 二 安装 1.环境 Windows7 64位操作系统(公司工作的台式机,探索阶段暂时使用,以后可能会转到Windows系统的服务器上去)。 已安装了Oracle 11g客户端,这里将不在介绍oracle的安装。 2.步骤 基本还是准寻下一步原则,第二步注意一下语言的选择。 SQL安装完毕后自动弹出Stack Builder引导安装PostGIS等其他扩展。 我这里只选择了自己需要的 PostGIS 版本进行了安装。 详细可以参考同事整理的安装文档: https://www.jianshu.com/p/3b1a4cd8e72e 三 遇到的第一个问题 前一天用着好好的数据库,第二天服务就死活链接不上了,而且在pgAdime里没有报任何错误,就很奇怪。 在尝试了修改配置文件、分析服务管理器启动产生的日志等最终还是没有奏效,索性 卸载干净重新安装 ,居然就好了。。。

.net必问的面试题系列之基本概念和语法

萝らか妹 提交于 2021-02-18 13:45:17
上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉。 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系列之面向对象 3.net必问的面试题系列之设计模式 4.net必问的面试题系列之集合、异常、泛型 5.net必问的面试题系列之简单算法 6.net必问的面试题系列之数据库 7.net必问的面试题系列之web前端 .net打杂工程师的面试感想和总结 ###问题目录 1 字符串中string str=null和string str=""和string str=string.Empty的区别 2 byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '啊'; byte g = 256; 这些变量有些错误是错再哪里? 3 string和StringBuilder的区别,两者性能的比较 4 什么是扩展方法? 5 byte a =255;a+=5;a的值是多少? 6 什么是装箱和拆箱? 7 值类型和引用类型的区别 8 new关键字的作用 9 int?和int有什么区别 10 C#中的委托是什么? 11 用最有效的方法算出2乘以8等于几? 12 const和readonly有什么区别? 13.现有一个整数number

Mysql字符串截取函数

…衆ロ難τιáo~ 提交于 2021-02-18 12:32:22
有时候我们需要直接用MySQL的字符串函数截取字符,毕竟用程序截取(如PHP)还得先写个脚本连接数据库之类的,所以在这里做一个记录,希望对大家有用。 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例: select left (content, 200 ) as abstract from my_content_t 2、从右开始截取字符串 right(str, length) 说明:right(被截取字段,截取长度) 例: select right (content, 200 ) as abstract from my_content_t 3、截取字符串 substring(str, pos) substring(str, pos, length) 说明:substring(被截取字段,从第几位开始截取) substring(被截取字段,从第几位开始截取,截取长度) 例: select substring (content, 5 ) as abstract from my_content_t select substring (content, 5 , 200 ) as abstract from my_content_t (注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度) 4、按关键字截取字符串

Task.Run与Task.Factory.StartNew的区别

牧云@^-^@ 提交于 2021-02-18 10:42:05
Task 是可能有延迟的工作单元,目的是生成一个结果值,或产生想要的效果。任务和线程的区别是:任务代表需要执行的作业,而线程代表做这个作业的工作者。 在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法。一般它使用的主要场景只是将一个工作任务丢给一个后台线程执行而已。为了高度可配置机制它提供了很多 重载方法 ,通过设置可选参数,可以传递任意状态,取消任务继续执行,甚至控制任务的调度行为。所有这些能力也带来了复杂性的提升,你必须知道何时应该使用何种重载方法,提供哪种调度方式等等。 例如: Task.Factory.StartNew(someAction, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); 使用这些默认参数,Task.Run就能用于大多数情况——只是将任务简单的交给后台线程池去执行。当然你可以通过控制TaskCreationOptions参数来控制任务的行为,你也可以通过控制TaskScheduler来控制任务应该如何排队如何运行,你也可以使用重载方法中的接受对象状态那个参数,对于一些性能敏感的代码,它可以用于避免闭包以及相应的资源分配。 Task.Factory.StartNew这种写法不够简洁明快,于是,在