Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2171004
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2010-10-22 00:18:20

网络工程Project 进度报告3

一、工作进展

   110171021的工作内容及进度

         小组在1017晚开会讨论了一下代码的确定问题。由于剩余时间不多的限制,并基于已有代码的较完整性以及代码搜索的耗时性,所以小组决定继续研究上次由张晓雪同学找到的P2P源码,并对此进行后期的分析。

         10161017两天内,小组成员都对源码进行了初步的阅读。但就1017晚的会上讨论来看,小组成员阅读代码的效果并不理想。虽然代码量不大,但是由于里面牵涉到的类调用问题以及对于一些语句或函数理解的问题,导致程序运行出现很多错误,无法正常的使用。由于对程序的整体性把握不好,分离的看程序感到的只是一种凌乱感,于是在成员阅读完代码的基础上,我们联系了本课程研究torque游戏开发的牛绍勇同学,让他帮我们看一下程序。通过一点点调试,程序基本可以开始运行,但是按钮的监听还是没有起到真正的作用,很多代码仍无法在软件上真正应用。而且虽然可以在一台计算机上显示另一计算机的IP,但是并没有任何可以Search的文件出现。在这里面,很多代码仍没有看懂。所以,后面实现软件的真正运行和代码阅读仍然是重点内容。

 

  2、已搜索结果-摘要

     例如:下面这段程序的URL地址中的SERVERNAME串应改为什么是自己的ip还是别的

public String[][] start_connection(String param,String us, String fs, String present_users[][])

    {

        URLConnection urlconnection;

        InputStream url_inputstream;    // For Connecting and gaining the information..

        String information[][] = {{ " "," "}};

        Vector values = new Vector();

        boolean go_on = true;

        boolean search_flag = false;

 

    try

        {

        if (param.equalsIgnoreCase("search")) // if Search

        {

            // Call The ASP with proper format and parameters and initialize a vector to

            // store the information generated from this request..

            urlconnection = (new URL(""+us+"&fs="+fs)).openConnection();

            urlconnection.connect();

            search_flag= true;

            filenames = new Vector();

            filenames.add(0,(Object)"filesearch");

 

        }

        else    // if root

        {

        urlconnection = (new URL("")).openConnection();

        urlconnection.connect();

        search_flag= false;

        }

        StringBuffer sb = new StringBuffer();

        try

        {

        url_inputstream = urlconnection.getInputStream();   // get the inputstream

        // read the response from the request and store it in the response.xml file...

        BufferedReader br = new BufferedReader(new InputStreamReader(url_inputstream));

 

        BufferedWriter file_output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("response.xml")),32);

 

        int i = 0;

        char[] b = new char[32];

        String string = "";

        while ((i = br.read(b,0,32)) > 0 )

        {

       String temp = new String(b,0,i);

        string = string +temp;

        }

        string = string.trim();

        char d[] = string.toCharArray();

        file_output.write(d,0,d.length);

 

        br.close();     // Close the inputStream..

        file_output.close();    // Close the inputStream..

 

        }

 

        catch(Exception ef)

        {

        }

        // A class SParser is also used here this class has a function/method of

        // the name perform which calls the xml parser to parse the xml file

        // generated by the response from the client soket...

 

        // the function perform returns a Vector which has the files/directories,

    // along with their flag information and size in case of files....

     

二、成员分工

宋伟、王曼丽、张晓雪、张子童、张婉娇、尹婷、唐梦楠:

阅读JAVA源代码、讨论分析代码内容

杨庭红:P2P核心技术分析

 

三、成员个人总结(包括遇到问题以及初步解决方案)

宋伟:

这周是确定小组后期研究内容的一周,由于已经过去的几周内小组成员主要还是对于原理、技术方面的资源搜索和了解学习。到了后期,学习和研究的内容则侧重在了代码的研究上。但是对于已经搜索到的代码我们似乎又进入了一个瓶颈阶段,就是对于代码的分析还不够,虽然代码确定了,但是读懂而且深入的分析又成了下一步的一项重要工作。所以下一阶段的任务主要还是集中在代码上面。搞清楚代码的每个类的作用和类之间的调用关系之后,才可能顺利地进行后面的工作。

 

王曼丽:

这一周我看了组长给的java代码,关于p2p进行共享,这就需要两个对等点进行交互。所以我们组在一起将两台电脑通过交叉线连接。虽然两个电脑能够ping通,可以找到对方ip,但是没有response.xml文件,所以无法显示对方资源。其实我不懂的是xmlwriter类的部分,这是因为这个类大多写的是XML格式。经过我们小组同学开会,普遍感觉这是一个要突破的难题。随后我和组长就去找了老师寻求帮助,他简单地告诉我们xmlwriter类的大致内容。它先在本地写xml文件,然后通过输入输出流进行交互。另外我们也没有研究明白main 中的servername应该怎么填写才能进行共享。这就需要我们继续阅读代码,并老师询问。

下一步我准备仔细阅读client类,虽然现阶段还不明白xmlwriter类以及和它关联的Sparser类,但可以通过阅读Client类了解大概的调用

 

张晓雪:

本周我把我们组暂时找到的代码,进行了更深入地阅读。其中发现很多问题,因为这是一个老外编写的代码,所以所有的注释都是英文的。当然这比没有注释要好很多。其次就是阅读别人的代码,我个人觉得还是非常困难的。比如,很多函数不知道是如何调用的,很多参数也不知道是传到哪里的。因此,这个工作对我来说有一定难度。

下周我的主要任务是,如果这个代码无法运行出来的话,继续找还是自己编还要听组长的安排。

 

杨庭红:

在找p2p代码的过程比较盲目,因为不知道什么样的才算合理,因为我们小组有学c++的,也有学java的,所以两种代码都得找,找c++代码的时候不知道什么样的才算合理,有即时通讯也有文件共享方面的,最后经过大家的统一确定选择了文件共享方面。除了这些还有的另外比较麻烦的就是,找到c++之后,就是看代码了,这相对还比较容易 ,但是找java的时候就比较难了,因为我对java不太了解,而且很难看懂。小组就是以java代码为主,但是我也不能把c++的代码仍在一旁和大家看java,所以最近的任务就是从c++的代码看起,然后协同大家的统一步骤完成每周的任务。

 

尹婷:

周一时我们进行了小组的讨论,针对个人在阅读中的问题进行了意见交换,但是存在许多的共性问题无法解决,于是决定向其他编程能力的同学进行请教,同时大家在尽力去分析阅读。

这周的主要工作是对代码进行进一步的阅读、分析,首先遇到的问题,程序无法完整正常的运行,客户端界面无法与其他主机相连接,这使我不能对程序的功能设计与调用有一个总体的了解,所以对代码的分析就有很大困难。我只好先从程序的客户界面主程序类,进行分析,再对其中调用的应用类进行分析,其中的数据传递与调用让我有许多不理解的地方,还有标识符、条件的设定也里不太清头绪。最主要的是其中套接字的建立与我在JAVA中学的有冲突,很不理解,还有在我调试时还发现提示缺少某个.xml文件,但程序包中没有。

就我个人而言,这周的工作总体上没有什么突破与进展,不过我还是会继续努力的,及时与成员沟通。虽然试图查找其他的源代码,但是都没有成功,所以下周应该还是要群策群力,进一步分析代码

   

张子童:

本周继续上周所找的代码,进行了解读,在读的过程中,存在许多问题,像在代码中哪部分代码实现的P2P技术,是如何实现的,部分代码的类的调用也存在着问题。另外对JAVA中的部分语言也存在着疑问,由于所有注释是英文版,读起来也是相当费劲的,目前还没有完全解决的问题。所有下周的主要任务我想我是要解决代码的问题,在同时也能很好的体会P2P技术。这个BT下载器代码目前也 没有很完整的运行出来。所以对代码的正确性也存在着疑问,所以下一阶段在读这个代码的同时自己也会关注其他代码以判断此程序的正确与否。

 

张婉娇:

在上周找完代码之后,在自己大致看过代码之后,我们也进行了小组的讨论,由于在代码中的各个类的功能不是很能理解,其中的注释也是英文,所以对在这个代码中实现的P2P技术也存在一定的疑惑,小组讨论也让我理解了部分代码的作用,所以下周还要对代码进行深入,真正理解P2P技术在这个BT下载器代码中是如何实现的,再有就是这个下载器还没有正确的运行出来,也使我们对所找的代码的正确性,产生了质疑,但是现在还是要以读懂代码为主,必先自己知道原理技术才能弄明白别人的代码是对是错。

 

唐梦楠:

 我在这一周中主要看了关于P2P的一部分代码,并在周一晚上和小组的成员一起讨论代码中不懂的问题。在读代码的过程中我遇到了一些问题,像它有一些特别的类,是以前所不知道的,需要自己上网查,还有就是一些函数之间的调用问题,由于代码比较多,我还没有全部读完。

在小组讨论时,我们尝试将两台电脑用网线相连,希望他们之间能够相互ping通,从而实现该代码的功能,但是不知道什么原因不能实现它的功能,这个问题将是我接下来要思考的重点。

接下来我还会继续读代码,争取能够全部读懂,如果遇到不懂的地方也会和小组成员一起讨论解决,我希望自己能够在关于P2P的研究中有所收获!

 

四、前期总结及后期展望

本周的工作并没有像预期的那样,由于在源代码上存在较多的问题,使得工作的进度又稍有停滞。代码在阅读上问题仍有很多,像对于xmlwriterClient类中的一些功能上的理解问题等等,使得程序很难进入到深入和具体实现的阶段中。于此同时,我们也询问了老师和一些同学,在讨论中帮助我们进行代码的理解。所以针对现在的状态,下一阶段的代码深入任务仍然很艰巨。由于不像“恶意代码分析”中的代码可以割裂开来看,这个代码在整体上是同一的,完整的,无法割裂开的,所以如果进行分“类”的分配成员进行代码阅读,那么必然每个人都不会真的理解代码要说明的问题以及这之间的调用关系,但如果每个人都去阅读代码则并没有什么实质的进展。

所以针对这一点,在后一阶段的任务分配上不会安排所有的成员进行代码阅读,而是将任务分别开来。组织3-4人进行代码上的深入分析;2-3人进行P2P核心技术的研究;1-2人开始系统整理已经搜集到的各种资料,将后期文档中的原理部分内容细分,理清内容的脉络。

阅读(905) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~