摘要: UDP协议User Datagram Protocal ,用户数据报协议,它跟TCP协议不同,TCP协议是基于流的,发送的数据跟IP数据报个数无关。而UDP数据则直接封装成IP数据报发送(当然,如果UDP数据过长,会导致IP数据报分片发送)。所以UDP是简单的基于IP数据报的传输,而IP数据报的传输是不保证可到达,不保证传输顺序,所以UDP不提供任何的可靠性。首部格式「Source port」 源端口号,可选的,如果不用可全部置0.如果喜欢接收方能回复,则源端口号很重要,要不然别人也不知道回复哪个端口,我们知道,系统内核是通过端口号来映射应用程序的「Destination port」 和「 「 阅读全文
posted @ 2013-05-04 22:28 海鸟 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 看到关于python的好文章,都喜欢转过来。转自:http://kjam.org/cn/tornado-prespective.html最近看到很多人的开发经验. 比如ruby和rails的使用者非常喜欢传道授业解惑, 网上能看到的python的文章大多数在研究一些好玩的算法等等. 事实上python在顶级软件团队的应用程度相当普遍, 在严肃的生产环境中也十分让人放心. 只是几乎所有的python framework都不擅长宣传自己, 本人有一次一口气浏览了大部分python web框架的主页, 没有一个框架主页有视频教程. 相比rails甚至Java的play framework首页都有sc 阅读全文
posted @ 2013-04-27 13:17 海鸟 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 今天周末有点时间看了下intellij idea的帮助文档。有一些对工作效率很有提高的快捷键记了下来,以备以后查看:想开始新行时,可以使用shift+enter,这样光标不必要在最后位置上。想打开编辑文件所在的外部系统文件,可以点击tab页的时候同时按住ctrl键即可。有时候我们经常要在两个文件编辑中切换,可以用crtrl + tab进行切换,就像操作系统级别的alt+tab切换列选择模式:按住Alt进行选择如要有交换两条语句,方法,类等的位置,可以ctrl + shift + up/down进行调整对于多行表达式,参数声明,字符串拼接等,可以按ctrl + shift + J进行合并折叠或展 阅读全文
posted @ 2013-03-24 16:00 海鸟 阅读(1687) 评论(0) 推荐(0) 编辑
摘要: 今天写代码时碰到一个问题,花了几个小时的时间google,基本上把google搜索的前几页内容都一一看了下,问题最终是解决了,不过过程挺曲折的,所以把这个过程记下来以便以后参考之。原因是以下一段代码引起的:import urllib2urllib2.urlopen('https://xxxx.com')本来这段代码很简单的,就是请求一个https的连接,可是报以下错误:urllib2.URLError: 第一反应是https证书问题产生的,如是以'python ssl' 为关键字google后,看到大家都在用'requests'这个python组 阅读全文
posted @ 2013-03-13 04:08 海鸟 阅读(28004) 评论(4) 推荐(3) 编辑
摘要: 记得之前写过一篇文章,html2javaben,并发布了一个相关的组件,大概的功能就是把抓取的html页面后抽取其中的结构化数据进行二次加工。最近在用python也在写一个好玩的抓取网页的东西,也想封装一个python版的这样的组件用,想不到前后大概花了2个小时构思,2个小时编码就搞定了。想起了以前... 阅读全文
posted @ 2013-03-04 16:07 海鸟 阅读(824) 评论(0) 推荐(0) 编辑
摘要: 选路原理在IP协议中,我们有一段的文章介绍了IP路由的相关知识。这里还是以我自己用的主机为例,查看我的本机路由表:1 tony@tony:~$ netstat -rn2 内核 IP 路由表3 Destination Gateway Genmask Flags MSS Window irtt Iface4 0.0.0.0 183.11.12.1 0.0.0.0 UG 0 0 0 ppp05 169.254.0.0 0.0.0.0 255.255.0.0 ... 阅读全文
posted @ 2013-02-25 23:20 海鸟 阅读(1220) 评论(0) 推荐(0) 编辑
摘要: ICMP简述ICMP是在rfc792中被定义。我们知道,IP协议是用来进行host-to-host之间的数据传输连接,但是IP数据报在传输中可能出现各种错误,发送方发送某个IP数据报后,如果发送失败,它是希望能够收到出错的反馈信息的,这就出现了ICMP协议。ICMP协议并不是用来保证IP数据报传输的可靠性,它只是对发送出现错误时进行反馈报到,要想保证数据传输的可靠性,需要高层相关协议定义,如TCP协议。ICMP是基于IP协议的,也就是说它利用IP数据报格式传输,所以它的头定义格式和IP协议一样。可参考我前篇文章:IP协议。ICMP报文格式type字段指示出错的类型,code字段指示出错的代码。 阅读全文
posted @ 2013-02-21 22:33 海鸟 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: 在之前的一篇文章,TCP/IP链路层协议中说到,在以太网链路传输中,必需是以48比特位的网络接口硬件地址建立连接的,而我们应用程序之间的通信是以32比特位的IP地址建立连接的,这就需要我们把32比特的IP地址映射到48比特的硬件地址(MAC地址)。ARP(address resolution protocol),RARP(reverse address resolution protocol),就是针对这一功能定义的协议规范。ARP使用示例假如现在我本机IP是:192.168.1.112,机器名为tony,我现在想telnet远程到192.168.1.100上进行相关远程操作。执行如下命令:t 阅读全文
posted @ 2013-02-03 23:34 海鸟 阅读(726) 评论(0) 推荐(0) 编辑
摘要: IP概述一些概念:IP是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP,IGMP数据都是以IP数据报格式传输。IP协议就是定义数据如何从源地址传送到目的地址,同时也定义在传输过程中的数据分片和重新组装IP协议是被它的上层协议(TCP,UDP)调用,同时它也调用它的下层协议(以太网协议,IEEE802),把IP数据报传到下一个网关(gateway)或目的地址IP协议主要实现两个基本功能:寻址和数据分片IP运作模式(model of operation)网络1中的应用程序把要数据交给IP模块处理,加上目标,源地址和相关参数等信息放到IP头中IP模块根据特定的链路层网络协议,进行 阅读全文
posted @ 2013-02-03 01:34 海鸟 阅读(1251) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://www.iteye.com/news/27078在软件开发过程中,往往会出现一些不可预知的错误,这些错误有可能花费你数小时甚至数天的时间。异常处理通常是防止这种未知错误的常用措施,它的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。本文将为你介绍6个技巧,来帮助你提高异常处理的能力。1. 使用一个单一的、系统范围的异常类不要针对每种异常类型创建单独的类,而是只创建一个,并使它继承RuntimeException。这可以减少类的数量,并移除你不会去处理的需要声明的异常。我知道你在想什么:如何告诉异常处理程序,这些是否是同 阅读全文
posted @ 2013-01-29 14:47 海鸟 阅读(505) 评论(0) 推荐(0) 编辑