2013年12月10日

关于Wireshark捕获TCP包的IP header checksum error问题

摘要: 在给别人写项目的时候,一个组件涉及到了TCP层的数据发送与接收。因为项目中这个组件有早起版本,所以也算是接手别人的东西。看了原来的代码半天云里雾里后决定用Wireshark来抓包,直接看包里面传输的数据格式反倒更简便。最后把组件搞定后用Wireshark测试的时候发现了好多的包都被标记为 Bad Tcp把包打开仔细查看后发现只有一个问题就是:header checksum == 0x0000查阅了大量资料后发现原来是网卡的自动计算校验和在作怪。网卡驱动的高级配置中,一般有两项叫做RxChecksumOffload和TxChecksumOffload以win7为例,可以看下图所示:其中的 “IP 阅读全文

posted @ 2013-12-10 13:24 掌中萌虎 阅读(2745) 评论(1) 推荐(1) 编辑

2013年11月16日

ArchLinux(2013)中的网络配置和静态IP时DNS刷新的解决方法

摘要: 受够了Ubuntu甜腻的风格和跟微软一样的无脑包办政策后,这两天开始尝试转战一些更轻量级的更自由的发布。 最后敲定了ArchLinux 首先这个系统包括安装和配置都是要自己一步一步来的,算是回头打打基础方面的东西。 其次网上说这个系统更能帮助了解计算机的底层运行机制(到现在还没感觉到.....) 你不觉得Arch这个名字很酷吗...... 言归正转.....如果你的网络跟我一样是固定的IP(也就是dhcp无效)的话,那么安装完成后你将会面临一个配置网络的问题。 注意安装的时候使用pacstrap 安装net-tools就能简单的使用ifconfig查看所有网络,并使... 阅读全文

posted @ 2013-11-16 15:36 掌中萌虎 阅读(3329) 评论(0) 推荐(0) 编辑

2013年6月27日

C# 反射

摘要: 在很多开发场景中,可以在开发过程中访问应用程序所需的所有程序集和代码。然而,有些应用程序要求可扩展,则只能通过编写代码,动态的添加外部程序集中包含的功能才能完成。根据需求,可能还需要动态的生成程序集。我将在下面介绍反射的原理和用法。1.反射概述很多时候,可以在开发过程中直接访问类型。然而,有些时候却需要在运行是动态的加载程序集,以及其中包含的类型和方法。例如支持插件的应用程序编写为可以动态运行的插件,机试在应用程序开发的时候插件还不存在。反射可以在运行时加载程序集,动态创建类型的实例,并将类型绑定到现有对象。然后就能够调用该类型的方法并访问其属性了。2.如何加载程序集在运行时加载程序集后就可以 阅读全文

posted @ 2013-06-27 03:23 掌中萌虎 阅读(266) 评论(0) 推荐(0) 编辑

C#线程的管理

摘要: 启动多线程是构建一个充分利用资源的应用程序的好方式,但在时计适应多线程时你很快就会发现事实上通过函数启动一个线程是不够的,往往我们需要更多的操作来对线程进行管理比如挂起、恢复和终止线程。使用线程时,如何避免资源冲突是关键的操作,这时需要锁定资源,是他只能同时被一个线程使用。1.启动线程和关闭线程 1 static void Main(String [] args) 2 { 3 Thread DoWorkThread =new Thread(new ThreadStart(DoWork)); 4 DoWorkThread.Start(); 5 Thread.Sleep(100... 阅读全文

posted @ 2013-06-27 02:44 掌中萌虎 阅读(493) 评论(0) 推荐(0) 编辑

2013年1月30日

服务器生成word文档

摘要: 最近在做一个BS项目的时候要求生成一个word文档供用户下载,因为原先的项目中也曾涉及过类似的东西,是通过winform调用office的命名空间,直接调用office的程序,打开文档,修改,保存关闭文档。但是在原来开发对应实用程序时就存在问题:1.用户必须安装Office否则无法使用,这个是不友好的2.用户安装不同的Office版本也会出现兼容性问题3.即使调用Quit函数有时也无法关闭Office进程,内存无法回收。如果杀掉进程的话可能导致用户正在使用的其他的word文档丢失,这也是不友好的。4.小概率会出现文档访问权限异常。现如今将整套系统搬上服务器的话,虽然说原先的前两个问题都不存在了 阅读全文

posted @ 2013-01-30 21:10 掌中萌虎 阅读(810) 评论(0) 推荐(0) 编辑

导航