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. jenkins结合gitlab实现提交代码自动构建

    jenkins可以说是现在非常流行的一个继续集成工具,几乎所有的公司都在用,并且它也基本是devops的连接者,是一个比较核心的工具. 主要记录以下两个: 利用jenkins和gitlab的webho ...

  2. Python-Django 模型层-单表查询

    单表操作 -增加,删,改:两种方式:queryset对象的方法,book对象的方法 -改:需要用save() -get()方法:查询的数据有且只有一条,如果多,少,都抛异常 单表查询 -<1&g ...

  3. JavaScript读取对象属性遇到的问题

    JavaScript中对于对象的属性存取方式有两种:“.”操作和[]操作. “.”操作属性名通常直接写,[]操作中属性的名字通常要加引号, 而当需要读取的对象属性名是一个变量的时候,一般使用[]操作, ...

  4. 加载Assetbundle需要注意的地方

    WWW:异步实现,手机上不能用于同步代码,需要监测其完成状态.不用www.dispose. CreateFromFile:阻塞,但是移动平台上面的路径格式有点坑,没时间看,不用. 以下两个方式需要先使 ...

  5. mysql的坑

    mysql安装报错: 1.The service already exists! The current server installed: 因为mysql卸载不完全. 解决方法: C:\window ...

  6. Laravel 5 中间件、路由群组、子域名路由、 权限控制的基本使用方法

    创建控制器: php artisan make:controller Admin/IndexController 创建Middleware: php artisan make:middleware T ...

  7. Java 使用blob对H5视频播放进行加密《java视频加密》

    1.创建一个H5 <video>标签 <video id="sound" type="video/mp4" controls="co ...

  8. 使用ansible kubectl插件连接kubernetes pod以及实现原理

    ansible kubectl connection plugin ansible是目前业界非常火热的自动化运维工具.ansible可以通过ssh连接到目标机器上,从而完成指定的命令或者操作. 在ku ...

  9. HttpConnection

    1.HttpConnection 用于接受和发送网络数据 网络操作必须新开个子线程执行,否则会出现 ANR(Application Not Response) 应用无响应异常 Get: /** * 通 ...

  10. vscode断点调试简单的服务端文件

    一.无配置文件时,如何调试? 1.安装code命令打开vscode,快捷键command + shift + p,输入shell command,选择install 'code' command in ...