随笔分类 -  C#

使用TCP协议的NAT穿透技术
摘要:其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之。 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是 阅读全文

posted @ 2017-03-20 16:24 jack_Meng 阅读(6810) 评论(0) 推荐(1) 编辑

用TCP穿透NAT(TCP打洞)的实现
摘要:目录 TCP穿透原理 程序思路 声明 上代码 运行示例 目录 1. TCP穿透原理: 我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入互联网。互联网上有一台服务器S。 现在AB是无法直接和对方发送信息的,AB都不知道对方在互联网上真正的IP和端口, A 阅读全文

posted @ 2017-03-20 16:09 jack_Meng 阅读(16040) 评论(1) 推荐(2) 编辑

内网穿透原理及实现一:C/S模式,P2P模式原理
摘要:1.前言 最近一阵子在研究内网穿透,查了不少资料,所以今天就聊聊两种不同的穿透方式的原理,以及基于java的netty框架的实现,代码也已在我的github。 起因:突然花这么大力气研究这个虽然是头脑发热所为,但动机源于跟小伙伴联机打游戏,原来用nat123之类的做远程端口转发在最近一阵子巨慢无比, 阅读全文

posted @ 2017-03-20 15:53 jack_Meng 阅读(1727) 评论(0) 推荐(1) 编辑

UDP打洞原理及代码
摘要:来源:http://www.fenbi360.net/Content.aspx?id=1021&t=jc UDP"打洞"原理 1. NAT分类 根据Stun协议(RFC3489),NAT大致分为下面四类 1) Full Cone 这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外 阅读全文

posted @ 2017-03-20 15:38 jack_Meng 阅读(8286) 评论(0) 推荐(0) 编辑

利用P2P点对点技术实现UDP内网穿透
摘要:介绍之前首先推荐一个程序员专用搜索引擎-http://www.openso.net 点对点技术在近几年应用很广,主要代表有QQ、skype、bt、迅雷、ppstream、pplive、qvod。我们可以看到,只要是数据量很大,而一般利用中转服务器又需要一定规模投入的应用,我们都可以考虑用P2P技术。 阅读全文

posted @ 2017-03-20 15:36 jack_Meng 阅读(2288) 评论(0) 推荐(0) 编辑

内网穿透&UDP打洞
摘要:首先文章建议 Cone NAPT 还有希望,要是 Symmetri NAPT 就别想了,接着介绍了两种基本情况,一是一台内网机器连接外网通信的情况,二是两台内网之间互联的情况。 第一种,只需要内网主动发起连接就可以了。内网机器A(192.168.1.x:4000)要求连接外网服务端S(60.17.2 阅读全文

posted @ 2017-03-20 15:34 jack_Meng 阅读(1194) 评论(0) 推荐(0) 编辑

穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
摘要:网上找了很多,代码大堆,原理讲清楚透彻的不多。 本人找几篇讲得好的来整理一下。 一片技术文章,最主要的讲清楚原理,如果再有完整的能运行的源代码也可,关键是要把核心部分代码分析清楚。 (1)问题的由来: 大部分的电脑上网都是用动态ip地址。内网的ip是由net(路由、网关)分配的,net发出去的时候, 阅读全文

posted @ 2017-03-20 15:32 jack_Meng 阅读(1371) 评论(0) 推荐(1) 编辑

使用StackTrace堆栈跟踪记录详细日志(可获取行号)
摘要:上一篇我们提到使用.NET自带的TraceSource实现简单的日志,具体请看《轻松背后的N+疲惫——系统日志》,这一篇注意想讲的是日志的详细记录,包含请求开始到结束的过程中调用的方法链以及记录日志那一刻的类名,方法名,行号等。 其实也就是堆栈的跟踪了,微软为我们提供了一个对堆栈跟踪的对象Stack 阅读全文

posted @ 2017-03-13 00:19 jack_Meng 阅读(11326) 评论(0) 推荐(1) 编辑

轻松背后的N+疲惫——系统日志
摘要:相信很多coder都有这样的癖好:“自恋”!!对自己编写的code总是那么的自信,自豪,Always believe it to be so perfect!! 不喜欢做单元测试(总觉得它就那样了能出什么错?),不喜欢做日志(总觉得他没有什么用!),不做日志也就算了还把异常给“吃”了(只是为了让别人 阅读全文

posted @ 2017-03-13 00:17 jack_Meng 阅读(562) 评论(0) 推荐(0) 编辑

C#获取堆栈信息,输出文件名、行号、函数名、列号等
摘要:命名空间:System.Diagnostics 得到相关信息: StackTrace st = new StackTrace(new StackFrame(true));StackFrame sf = st.GetFrame(0);Console.WriteLine(" File: {0}", sf 阅读全文

posted @ 2017-03-13 00:15 jack_Meng 阅读(13218) 评论(0) 推荐(0) 编辑

使用.NET中的XML注释(一) -- XML注释标签讲解
摘要:一.摘要 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用。 C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档。 这篇文章将展示如何使用这些XML注释。 在项目开发中,很多人并不乐意写繁杂的文档。但是,开发组长希望代码注释尽可能详细;项目 阅读全文

posted @ 2017-03-12 23:55 jack_Meng 阅读(1223) 评论(0) 推荐(0) 编辑

使用.NET中的XML注释(二) -- 创建帮助文档入门篇
摘要:一.摘要 在本系列的第一篇文章介绍了.NET中XML注释的用途, 本篇文章将讲解如何使用XML注释生成与MSDN一样的帮助文件.主要介绍NDoc的继承者:SandCastle. 二.背景 要生成帮助文件,很多人会想到NDoc.其实在VS2003中不使用NDoc也一样具有"生成Web文档"的功能.然而 阅读全文

posted @ 2017-03-12 23:55 jack_Meng 阅读(426) 评论(0) 推荐(0) 编辑

C# 代码注释和Config文件中,特殊符号的书写方法。
摘要:App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </s 阅读全文

posted @ 2017-03-12 23:53 jack_Meng 阅读(6577) 评论(0) 推荐(1) 编辑

C# 代码注释规范文档
摘要:C# 提供一种机制,使程序员可以使用含有 XML 文本的特殊注释语法为他们的代码编写文档。在源代码文件中,具有某种格式的注释可用于指导某个工具根据这些注释和它们后面的源代码元素生成 XML。使用这类语法的注释称为文档注释 (documentation comment)。这些注释后面必须紧跟用户定义类 阅读全文

posted @ 2017-03-12 23:24 jack_Meng 阅读(21305) 评论(0) 推荐(4) 编辑

基于 Winform + DotNetBar 写的股市行情助手
摘要:StockViewer 股市行情助手 简介 观看股市行情,窗口太显眼,是否担心被身后的老板发现? 窗口来回切换,工作时每隔几分钟就要看一眼股市。难道只能同时做一件事情吗? 现在,一款完全免费、开源的小工具值得你拥有~~ 特色 默认启动在右下角,浮于其他窗口之上 漂亮的界面,支持半透明 每500毫米一 阅读全文

posted @ 2017-03-06 17:16 jack_Meng 阅读(640) 评论(0) 推荐(0) 编辑

C#自动弹出窗口并定时自动关闭
摘要:最近做个小项目,用到一个小功能:后台线程定时查询数据库,不符合条件的记录弹出消息提醒(在窗口最前面),并且过几秒钟再自动关闭弹出的窗口。 所以从网上找来资料,如下: WinForm 下实现一个自动关闭的MessageBox Author: eaglet WinForm 下我们可以调用MessageB 阅读全文

posted @ 2017-03-04 21:38 jack_Meng 阅读(17368) 评论(0) 推荐(0) 编辑

C#关闭子窗口而不释放子窗口对象的问题解决
摘要:在网上找来一些方式,感觉还都不错,下面给出方式: 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置。调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载。另一种简单方式是直接使用该参数运行程序。因此,在后一种情况下,需要实现的功能是:即使关闭调试窗口,其窗口对象也不释放。除非其主窗 阅读全文

posted @ 2017-03-02 22:34 jack_Meng 阅读(13777) 评论(1) 推荐(0) 编辑

C#中将dateTimePicker初始值设置为空
摘要:最近在做一个小项目,有一个功能是根据用户选择条件查询数据,要求时间控件的默认值为空,只有当用户修改了时间,才根据时间查询。简单的说,就是默认或者点击清空按钮的情况下,时间控件dateTimePicker的值为空,当触发事件ValueChanged时再显示相对应的时间。 开始,我以为修改控件的默认值为 阅读全文

posted @ 2017-02-28 20:40 jack_Meng 阅读(21846) 评论(0) 推荐(1) 编辑

c#多线程实现定时执行代码与lock锁操作
摘要:总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间; 方法二:使用System.Timers.Timer类; 方法三:使用System.Threading.Timer; ? 1 2 3 4 5 6 7 8 9 10 11 12 阅读全文

posted @ 2017-02-27 15:28 jack_Meng 阅读(3669) 评论(0) 推荐(0) 编辑

WinForm设置窗体默认控件焦点
摘要:winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了。 ②Winform的Activated事件 在Form的Activated事件中添加textBox1.Focus() 阅读全文

posted @ 2017-02-20 23:38 jack_Meng 阅读(6522) 评论(0) 推荐(1) 编辑

导航