Assignment 2
The Trivial File Transfer Protocol (TFTP) is an Internet software utility for
transferring files that is simpler to use than the File Transfer Protocol (FTP) but
less capable. It is used where user authentication and directory visibility are not
required. For example, it is used by Cisco routers and switches to transfer
images of the operating system from/to the devices.
NOTE: TFTP's port is 69 (a system/OS port). This is below 1024 and therefore
you cannot bind a Socket to it unless you have administrative access rights on
the machine you are working. To avoid any complications you can use any port >
1024 to bind server sockets.
Task 1: Implementation of the Trivial File
Transfer Protocol (TFTP)
For this task you need to implement (in Java) the Trivial File Transfer Protocol
(TFTP) as specified in RFC 1350 (Links to an external site.)Links to an external
site.. You will submit source code for a client and server application that 'speak'
the TFTP protocol. You will built your protocol on top of UDP. Compared to the
specifications in the RFC, you will implement a slightly simplified version:
Support for octet mode only. The files should be transferred as a raw
sequence of bytes. Do not read, write or transfer files as characters.
Support only for error handling when the server is unable to satisfy the
request because the file cannot be found.
No support for error handling when data duplication occurs.
The client and server applications should be simple Java console applications.
The server should operate (i.e. read and write files) in the directory where it is
started from. The server should support simultaneous file transfers to and from
multiple clients. The client should just read command line arguments (or have a
very simple console-based menu - e.g. "press 1 to store file, press 2 to retrieve
file") and execute user commands (i.e. reading or writing a file).
Hint: the simplest way to implement timeouts is by calling

代写TFTP留学生作业、Java课程设计作业代做、Java程序语言作业调试
the setSoTimeout() method on the DatagramSocket objects (assuming that you
are using blocking I/O). If the timeout expires,
a java.net.SocketTimeoutException is raised, though the DatagramSocket is still
valid.
Task 2: Implementation of an even simpler
version of TFTP on top of TCP
For this task you will use TCP sockets to implement a protocol that operates like
TFTP (i.e. supports only read and write operations). Given that TCP supports
in-order, reliable data transport, you should not implement the relevant
mechanisms described in RFC 1350 (ACKs, retransmissions). The client and
server applications should be equally simple, as in Task 1. The server must be
able to handle multiple file transfers.
Marking Criteria
You should make sure that your code compiles. Code which does not compile
will receive at most 20%.
I will assess your assignment using the following criteria:
TFTP-UDP-Server (35%)
Is the server-side of the protocol fully and correctly implemented
(based on the specifications in the RFC)? i.e. read/write requests,
acknowledgments, timeouts, error handling, support for simultaneous
file transfers.
TFTP-UDP-Client (30%):
Is the client-side of the protocol fully and correctly implemented (based
on the specifications in the RFC)? i.e. read/write requests,
acknowledgments, timeouts, error handling.
TFTP-TCP-Server (10%)
Is the server-side of the protocol fully and correctly implemented? i.e.
read/write requests, error handling, support for simultaneous file
transfers.
TFTP-TCP-Client (10%):
Is the client-side of the protocol fully and correctly implemented? i.e.
read/write requests, error handling.
Description of Protocols (10%):
Is there description for both protocols and how/where the specifications
are implemented?
Is the description well-written with clear references to the source code?
Other Characteristics (5%):
Is the code commented appropriately?
Is it indented correctly?
? Is naming of variables and methods sensible?
Submission Guidelines
You should submit the coursework by the deadline posted on Sussex
Direct (and the submission link on Canvas). Standard penalties for late
submissions will apply. You will need to submit a .zip file containing the
following:
Well-formatted and well-documented source code (written in Java) in 4
separate Netbeans projects that can be compiled and run. The
Netbeans projects, named TFTP-UDP-Server, TFTP-UDP-Client,
TFTP-TCP-Server and TFTP-TCP-Client, respectively, will include all
required source code to execute the 2 different file transfer protocols.
A short report (up to 2000 words) describing your protocols, the source
code and the design decisions that you made.
Please do not put your names on your submissions, but do include your
candidate number. Failure to submit source code, as described in the first
bullet, will result to a zero mark as I will not be able to assess your
programming effort.
Plagiarism and Collusion
The coursework you submit is supposed to have been produced by
you and you alone. This means that you should not: work together with
anyone else on this assignment
give code for the assignment to other students
request help from external sources
do anything that means that the work you submit for assessment is not
wholly your own work, but consists in part or whole of other people’s
work, presented as your own, for which you should in fairness get no
credit
If you need help ask your tutor The University considers it misconduct to
give or receive help other than from your tutors, or to copy work from
uncredited sources, and if any suspicion arises that this has happened,
formal action will be taken. Remember that in cases of collusion (students
helping each other on assignments) the student giving help is regarded by
the University as just as guilty as the person receiving help, and is liable
to potentially receive the same penalty. Also bear in mind that suspicious
similarities in student code are surprisingly easy to spot and sadly the
procedures for dealing with it are stressful and unpleasant. Academic
misconduct also upsets other students, who do complain to us about
unfairness. So please don’t collude or plagiarise.

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com

微信:codinghelp

Trivial File Transfer Protocol (TFTP)的更多相关文章

  1. TFTP(Trivial File Transfer Protocol,简单文件传输协议)

    TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小.这时候有人可能会纳闷,既 ...

  2. TFTP(Trivial File Transfer Protocol,简单文件传输协议)

    网络特性 通常使用UDP 69端口(据说可改成TCP) 与FTP区别 轻量级,适用于传输小文件,当然功能也少些,比如没有列出目录功能,不进行认证

  3. FTP(File Transfer Protocol)是什么?

    文件传输协议 FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过 ...

  4. FTP - File Transfer Protocol

    FTP - File Transfer Protocol FTP 实际上使用了两个 TCP 链接. 一个作为控制信道用, 主要传输一些指令和响应, 比如 ACK 或 错误码. 另一个链接是数据信道, ...

  5. ftp - Internet 文件传输程序 (file transfer program)

    概述 (SYNOPSIS) ftp [-pinegvd ] [host ] pftp [-inegvd ] [host ] 说明 (DESCRIPTION) 用户通过 Ftp 这个程序来使用 Inte ...

  6. SSH File Transfer遇到错误"too many authentication failures for root".A protocol error was detected......

    在SSH  Secure Shell 连接Linux centos的时候,遇到F-Secure SSH File Transfer错误"too many authentication fai ...

  7. PAT 5-8 File Transfer (25分)

    We have a network of computers and a list of bi-directional connections. Each of these connections a ...

  8. 让 File Transfer Manager 在新版本WIndows上能用

    最近研究.NET NATIVE,听说发布了第二个预览版,增加了X86支持,所以下,发现连接到的页面是:https://connect.microsoft.com/VisualStudio/Downlo ...

  9. PAT 05-树7 File Transfer

    这次的题让我对选择不同数据结构所产生的结果惊呆了,一开始用的是结构来存储集合,课件上有现成的,而且我也是实在不太会,150ms的时间限制过不去,不得已,看到这题刚好可以用数组,结果7ms最多,有意思! ...

随机推荐

  1. ActiveMQ依赖JDK版本关系

    1.如何查看官方发布的activeMQ依赖的JDK版本1)以ActiveMQ 5.15.2 Release为例:在下载页面的Change Log处, 2)打开下载号的jar包,以activemq-al ...

  2. jersey+maven构建restful服务

    一.新建一个Maven Web项目 a) 新建一个简单的Maven项目 b) 将简单的Maven项目转成Web项目 (若没出现further configuration available--或里面的 ...

  3. Jmeter性能测试之进阶Java request的使用

    在IDE中引用Jmeter的安装目录lib/ext中两个文件ApacheJMeter_core.jar和ApacheJMeter_java.jar Java request的类需要继承Abstract ...

  4. node爬取html乱码

    var http = require('http'), iconv = require('iconv-lite'); http.get("http://website.com/", ...

  5. Java _类 相关知识

    成员变量 java对象的属性就是成员变量,其实成员变量就是指普通的变量,可以设置初始值,也可以不设置.当不设置时,会被设置为默认值.(当成员变量前面有private关键词时,说明定义了一个私有成员) ...

  6. c++中字符串的反转

    1.对于用char定义的字符串:使用string.h中的strrev函数 #include <iostream> #include <cstring> using namesp ...

  7. 2018-2019-1 20189201 《LInux内核原理与分析》第六周作业

    希望是美好的 但仅仅是所想 一.书本第五章知识总结[系统调用的三层机制(下)] 深入理解系统调用的过程 system_call并不是一个普通的函数,只是一段汇编代码的起点,且内部没有严格遵守函数调用堆 ...

  8. Android-XML

    Android-XML XML文件: <?xml version="1.0" encoding="utf-8"?> <books> &l ...

  9. 在VS2010上安装MVC4(webApi)

    我们安装的VS2010上是没有MVC4或者WebApi的,要想加入这些功能只能自己在网上下载安装. 要安装MVC4,首先得安装VS10sp(Service Package)1,然后再安装MVC4.安装 ...

  10. 机器学习入门之python实现图片简单分类

    小任务:实现图片分类 1.图片素材 python批量压缩jpg图片: PIL库 resize http://blog.csdn.net/u012234115/article/details/50248 ...