爱情鸟第一论坛com高清免费_91免费精品国自产拍在线可以看_亚洲一区精品中文字幕_男人操心女人的视频

COMP3310代做、代寫C++, Java/Python編程

時間:2024-04-16  來源:  作者: 我要糾錯



Page 1 of 3
COMP3310 - Assignment 2: Indexing a Gopher.
Background:
• This assignment is worth 12.5% of the final mark.
• It is due by 23:55 Friday 26 April AEST (end of Week 8)
• Late submissions will not be accepted, except in special circumstances.
o Extensions must be requested as early as possible before the due date, with suitable
evidence or justification.
• If you would like feedback on particular aspects of your submission, please note that in the
README file within your submission.
This is a coding assignment, to enhance and check your network programming skills. The main focus is on
native socket programming, and your ability to understand and implement the key elements of an
application protocol from its RFC specification.
Please note that this is an ongoing experiment for the course, trialling gopher for this assignment. We may
discover some additional challenges as we go, that requires some adjustments to the assignment activities, or
a swap of server. Any adjustments will be noted via a forum Announcement.
Assignment 2 outline
An Internet Gopher server was one of the precursors to the web, combining a simple query/response
protocol with a reasonably flexible content server, and a basic model for referencing and describing
resources on different machines. The name comes from the (Americanised) idea to “go-for” some content…
and also the complexity of their interconnected burrows1
.
For this assignment, you need to write your own gopher client in C, Java or Python2,3
, without the use of any
external gopher-related libraries. The client will need to ‘spider’ or ‘crawl’ or ‘index’ a specified server, do
some simple analysis and reporting of what resources are there, as well as detect, report and deal with any
issues with the server or its content.
Your code MUST open sockets in the standard socket() API way, as per the tutorial exercises. Your code
MUST make appropriate and correctly-formed gopher requests on its own, and capture/interpret the results
on its own. You will be handcrafting gopher protocol packets, so you’ll need to understand the structures of
requests/responses as per the gopher RFC 1436.
We will provide a gopher server to run against, with a mix of content – text and binary files, across some
folder structure, along with various pointers to resources.
In the meantime, you SHOULD install a gopher server on your computer for local access, debugging and
wiresharking. There are a number available, with pygopherd perhaps the more recently updated but more
complex, and Motsognir, which is a bit older but simpler. If you find another good one, please share on the
forum.
1 https://en.wikipedia.org/wiki/Gopher
2 As most high-performance networking servers, and kernel networking modules, are written in C with other languages
a distant second, it is worth learning it. But, time is short, and everyone has a different background.
3
If you want to use another language (outside of C/Java/Python), discuss with your tutor – it has to have native socket
access, and somebody on the tutoring team has to be able to mark it.
Page 2 of 3
Wireshark will be very helpful for debugging purposes. A common trap is not getting your line-ending right on
requests, and this is rather OS and language-specific. Remember to be conservative in what you send and
reasonably liberal in what you accept.
What your successful and highly-rated indexing client will need to do:
1. Connect to the class gopher server, and get the initial response.
a. Wireshark (just) this initial-response conversation in both directions, from the starting TCP
connection to its closing, and include that wireshark summary in your README.
b. The class gopher site is not yet fully operational, an announcement will be made when it’s ready.
2. Starting with the initial response, automatically scan through the directories on the server, following links
to any other directories on the same server, and download any text and binary (non-text) files you find.
The downloading allows you to measure the file characteristics. Keep scanning till you run out of
references to visit. Note that there will be items linked more than once, so beware of getting stuck in a
loop.
3. While running, prints to STDOUT:
a. The timestamp (time of day) of each request, with
b. The client-request you are sending. This is good for debugging and checking if something gets
stuck somewhere, especially when dealing with a remote server.
4. Count, possibly store, and (at the end of the run) print out:
a. The number of Gopher directories on the server.
b. The number, and a list of all simple text files (full path)
c. The number, and a list of all binary (i.e. non-text) files (full path)
d. The contents of the smallest text file.
e. The size of the largest text file.
f. The size of the smallest and the largest binary files.
g. The number of unique invalid references (those with an “error” type)
h. A list of external servers (those on a different host and/or port) that were referenced, and
whether or not they were "up" (i.e. whether they accepted a connection on the specified port).
i. You should only connect to each external server (host+port combination) once. Don't
crawl their contents! We only need to know if they're "up" or not.
i. Any references that have “issues/errors”, that your code needs to explicitly deal with.
Requests that return errors, or that had to abort (e.g. due to a timeout, or for any other reason) do not count
towards the number of (smallest/largest)(text/binary) files.
You will need to keep an eye on your client while it runs, as some items might be a little challenging if you’re
not careful… Not every server provides perfectly formed replies, nor in a timely fashion, nor properly
terminated file transfers, for example. Identify any such situations you find on the gopher server in your
README or code comments, and how you dealt with each of them – being reasonably liberal in what you
accept and can interpret, or flagging what you cannot accept.
We will test your code against the specified gopher, and check its outputs. If you have any uncertainties
about how to count some things, you can ask your tutor or in the forum. In general, if you explain in your
README how you decide to count things and handle edge-cases, that will be fine.
You can make your crawler's output pretty or add additional information if you'd like, but don't go
overboard. We need to be able to easily see everything that's listed here.
Page 3 of 3
Submission and Assessment
There are a number of existing gopher clients, servers and libraries out there, many of them with source.
While perhaps educational for you, the assessors know they exist and they will be checking your code against
them, and against other submissions from this class.
You need to submit your source code, and a README file (text/word/pdf). Any instructions to run the code,
and any additional comments and insights, please provide those in the README. Your submission must be a
zip file, packaging everything as needed, and submitted through the appropriate link on wattle.
Your code will be assessed on [with marks% available]
1. Output correctness [45%]
o Does the gopher server correctly respond to all of your queries?
o Does your code report the right numbers? (within your interpretation, perhaps)
o Does your code cope well with issues it encounters?
o Does your code provide the running log of requests as above?
2. Performance [10%]
o A great indexer should run as fast as the server allows, and not consume vast amounts of
memory, nor take a very long time. There won’t be too many resources on the server.
3. Code “correctness, clarity, and style” [45%]
o Use of native sockets, writing own gopher requests correctly.
o Documentation, i.e. comments in the code and the README - how easily can somebody else
pick this code up and, say, modify it.
o How easy the code is to run, using a standard desktop environment.
o How does it neatly handle edge-cases, where the server may not be responding perfectly.
During marking your tutor may ask you to explain some particular coding decisions.
Reminder: Wireshark is very helpful to check behaviours of your code by comparing against existing gopher
clients (some are preinstalled in Linux distributions, or are easily added). There are a number of youtube
videos on gopher as well that e.g. show how the clients work. Your tutors can help you with advice (direct or
via the forum) as can fellow students. It’s fine to work in groups, but your submission has to be entirely your
own work.

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

標簽:

掃一掃在手機打開當前頁
  • 上一篇:代做COMP9024、代寫C++設計編程
  • 下一篇:代寫CS360、代做Java/Python程序設計
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • 短信驗證碼平臺 理財 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    爱情鸟第一论坛com高清免费_91免费精品国自产拍在线可以看_亚洲一区精品中文字幕_男人操心女人的视频
    <strike id="bfrlb"></strike><form id="bfrlb"><form id="bfrlb"><nobr id="bfrlb"></nobr></form></form>

        <sub id="bfrlb"><listing id="bfrlb"><menuitem id="bfrlb"></menuitem></listing></sub>

          <form id="bfrlb"></form>

            <form id="bfrlb"></form>

              <address id="bfrlb"></address>

              <address id="bfrlb"></address>
              亚洲色图在线视频| 一区二区三区高清在线| 国产日韩精品一区二区三区在线| 国产精品久久久久秋霞鲁丝| 国内精品美女av在线播放| 欧美日韩一区二区免费视频| 国产日韩一区在线| 国语对白精品一区二区| 午夜精品99久久免费| 欧美三级午夜理伦三级中视频| 欧美成人激情视频| 亚洲色图自拍| 国产精品一区二区黑丝| 久久久视频精品| 欧美日韩一区在线观看视频| 国产一区二区欧美| 性欧美18~19sex高清播放| 亚洲成人在线网| 亚洲毛片在线观看| 久久久久一区二区三区| 99av国产精品欲麻豆| 亚洲日本成人女熟在线观看| 99国产精品视频免费观看一公开| 亚洲国产高清在线观看视频| 亚洲美女精品成人在线视频| 91久久国产自产拍夜夜嗨| 欧美精品在线观看91| 亚洲影音一区| 亚洲福利小视频| 欧美不卡在线视频| 一区二区三区www| 久久精品91久久香蕉加勒比| 亚洲欧美制服中文字幕| 亚洲欧美日韩一区二区三区在线| 国产精品久久网| 亚洲欧美日韩国产另类专区| 亚洲欧洲一区二区天堂久久| 亚洲人人精品| 免费日本视频一区| 亚洲综合国产精品| 欧美a级片一区| 久久五月婷婷丁香社区| 久久成人综合视频| 久久亚洲影音av资源网| 亚洲尤物视频在线| 99精品国产高清一区二区| 国产日韩欧美精品在线| 一区二区亚洲欧洲国产日韩| 欧美激情一区二区三区四区| 欧美大片网址| 亚洲精品乱码视频| 在线视频观看日韩| 夜夜嗨一区二区三区| 久久福利毛片| 欧美一区二区三区四区高清| 另类国产ts人妖高潮视频| 亚洲与欧洲av电影| 一区二区三区回区在观看免费视频| 在线日本欧美| 免费在线观看精品| 性欧美8khd高清极品| 99pao成人国产永久免费视频| 国产欧美91| 国产一区二区高清不卡| 国产精品第十页| 国产精品视频久久一区| 欧美成人精品一区二区三区| 欧美一区二区高清| 国语自产精品视频在线看抢先版结局| 久久爱www久久做| 欧美日韩精品不卡| 久久综合九色综合网站| 亚洲视屏一区| 国产精品一区久久久久| 国产一区二区无遮挡| 欧美视频在线观看| 美女精品自拍一二三四| 午夜精品一区二区三区在线播放| 亚洲免费在线视频| 国产日韩精品一区二区三区| 国产精品久久久久久久久免费樱桃| 亚洲国产一区在线| 狠色狠色综合久久| 在线日韩一区二区| 欧美激情国产日韩| 亚洲欧美视频一区二区三区| 欧美区视频在线观看| 亚洲国产天堂久久综合网| 日韩一区二区免费看| 老司机成人在线视频| 欧美激情第10页| 一区二区亚洲| 精品成人一区二区三区四区| 欧美日韩国产页| 亚洲国产视频一区| 久久久久国产精品人| 久久九九国产精品| 亚洲人成在线观看| 亚洲精品日韩欧美| 国产欧美在线观看一区| 欧美波霸影院| 国产精品久久久久久久久久久久久久| 午夜精品一区二区三区四区| 在线观看日韩www视频免费| 影音先锋久久资源网| 久久手机免费观看| 久久精品亚洲国产奇米99| 国产午夜精品久久| 欧美成人四级电影| 亚洲人成网在线播放| 国产精品青草久久久久福利99| 欧美三级乱码| 亚洲国产一区二区a毛片| 欧美视频精品在线| 亚洲国产欧美一区| 欧美成人免费在线视频| 欧美精品色一区二区三区| 国产精品一级在线| 亚洲免费在线播放| 亚洲国产片色| 欧美日韩国产一区| 亚洲激情国产精品| 亚洲天堂成人| 亚洲免费在线观看视频| 国产精品久久久久一区二区三区| 国产精品狼人久久影院观看方式| 欧美四级电影网站| 亚洲永久在线| 欧美日本国产在线| 国产主播一区二区三区四区| 欧美三级午夜理伦三级中文幕| 国产精品久久久久久久午夜片| 国内精品久久久久影院优| 亚洲黄色在线| 亚洲影视中文字幕| 亚洲欧洲综合| 亚洲免费观看| 亚洲一区二区三区四区五区黄| 亚洲欧洲一二三| 日韩视频中文| 久久黄色网页| 欧美精品久久99久久在免费线| 亚洲国产成人av在线| 国产一区二区三区高清播放| 亚洲级视频在线观看免费1级| 欧美色道久久88综合亚洲精品| 久久精品视频免费| 亚洲欧美日韩一区二区三区在线| 激情文学一区| 亚洲国产女人aaa毛片在线| 国产专区一区| 欧美日本一区二区高清播放视频| 亚洲国产99精品国自产| 欧美性猛片xxxx免费看久爱| 一本大道久久精品懂色aⅴ| 国产精品卡一卡二卡三| 在线观看欧美亚洲| 欧美成ee人免费视频| 国产精品v日韩精品v欧美精品网站| 亚洲女女女同性video| 欧美一区二区三区免费视| 在线观看视频一区二区欧美日韩| 久久久人成影片一区二区三区观看| 欧美日韩国产免费| 欧美日在线观看| 在线观看亚洲一区| 欧美日韩一区精品| 久久久蜜桃精品| 国产一区二区三区成人欧美日韩在线观看| 欧美一区2区三区4区公司二百| 欧美大胆a视频| 亚洲欧美日韩在线播放| 久久久精品网| 欧美久久99| 欧美四级伦理在线| 久久精品成人欧美大片古装| 亚洲另类黄色| 欧美一级大片在线免费观看| 欧美日韩三级视频| 亚洲国产成人精品久久久国产成人一区| aa成人免费视频| av不卡在线观看| 亚洲国产日韩美| 国产精品久久久999| 亚洲视频香蕉人妖| 欧美亚洲第一区| 最新国产成人av网站网址麻豆| 欧美日韩色一区| 欧美日韩精品欧美日韩精品| 欧美美女喷水视频| 国产精品毛片在线看| 国产欧美一区二区精品婷婷| 午夜精品在线| 国产精品国产精品国产专区不蜜| 精品成人a区在线观看| 亚洲欧洲一区二区三区| 性色av一区二区怡红| 亚洲天堂黄色| 伊人伊人伊人久久| 国产精品一区免费在线观看|