编程实现可靠数据传输原理Go-Back-N

有一个计算机网络的实验,需要模拟GBN的过程,即在本地条件下模拟丢包重传机制。刚看到这个实验时有些不知所措,因为不知道怎样能实现丢包,在本地编程,即使是使用不可靠数据传输UDP的DatagramSocket,由于localhost到localhost走的是回环链路,也就是从客户机的应用层–传输层–网络层 到 服务器的网络层–传输层–应用层,这个肯定无法丢包,也用实验进行验证了(比如连续发送1万个DatagramPacket,发现每一个都被收到了)。

那么问题来了,怎样才能丢包?

编程实现路由算法--迪杰斯特拉算法

路由算法有很多,本篇采用迪杰斯特拉最短路径法实现简单的路由算法。可能很多人一看到这个就会想到数据结构了,想到数据结构中必须要建立图的结构就很头疼,今天这种写法可以先不采用数据结构书上的写法,也可以实现相同的功能,毕竟,咱们的重点是要学习使用迪杰斯特拉算法,而不是构建图结构。

Android 中线程同步异步方式总结

学了这么多年 Java 和 Android,居然连线程同步还是异步都分不清,还好被人问到了『线程同步和异步的区别』,当时我的回答是:”这两个有区别吗。。?不都是控制线程之间先后的执行顺序吗?比如 Android 里常用的 Handler、接口回调、事件分发、synchronized、wait、Semaphore、CountDownLatch”等等,我还说了一堆能够控制线程先后执行顺序的方式。后来发现,确实同步和异步不一样,所以本篇文章主要就讲讲同步异步的概念区别以及 Android 中同步异步的各种实现方式。

备注:此篇文章为目录,具体内容后续分篇更新。

再谈用 Java 实现 SMTP 发送邮件之 Socket 编程

    前几天利用Socket实现了用java语言搭建web服务器,全程下来应该会对Socket这个东西已经使用的非常熟悉了,虽然抽象,但是使用过一次之后就会感受到它在网络通信上的作用是多么的强大!正好,今天就继续用Socket来练习使用以下Smtp协议发送一封简单的电子邮件。今天的故事呢,是我要约我女神出去吃饭啦啦啦~~~所以,面对Smtp,只许成功,不许失败!

浅谈用 Java 搭建 web 服务器之 Socket 编程——更好的理解 Apache、Tomcat 等软件的工作模式

之前做web应用一直是在本地装个Apache、Tomcat之类的软件,然后把做好的网页文件放在他们的工作目录下(如Apache的htdocs),然后打开浏览器输入127.0.0.1或localhost就可以直接访问了,好神奇,可是为什么,怎么实现的呢,早就知道有Socket(套接字)这个东西,可之前就是没有把这两方面结合起来,今天我们就一起来看一看这究竟是为什么。