狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线

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

    狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线
  • <dl id="akume"></dl>
  • <noscript id="akume"><object id="akume"></object></noscript>
  • <nav id="akume"><dl id="akume"></dl></nav>
  • <rt id="akume"></rt>
    <dl id="akume"><acronym id="akume"></acronym></dl><dl id="akume"><xmp id="akume"></xmp></dl>
    成熟老妇女视频| 国产精品宾馆在线精品酒店| 午夜探花在线观看| 在线免费视频一区| av观看免费在线| 凹凸国产熟女精品视频| 永久免费网站视频在线观看| 天天综合中文字幕| 亚洲精品20p| 青娱乐国产精品视频| 玖玖精品在线视频| 黄色一级片黄色| 无码人妻丰满熟妇区毛片18| 精品久久一二三| 国产精品视频中文字幕| 色噜噜狠狠永久免费| 国产在线拍揄自揄拍无码| 91免费国产精品| 中文字幕国产传媒| 国产树林野战在线播放| 精品国产av无码一区二区三区| 久久久久久久9| 亚洲自拍第三页| xxxx18hd亚洲hd捆绑| 18禁裸男晨勃露j毛免费观看| 黄色一级大片免费| 波多结衣在线观看| 欧美一区二区三区爽大粗免费| 亚洲国产精品三区| 欧美 日本 亚洲| 黄色三级中文字幕| 欧美日韩中文字幕在线播放| 国产精品无码av无码| 黄色国产一级视频| 黄色国产一级视频| 日韩欧美视频网站| 日产精品久久久久久久蜜臀| 国产三级生活片| 欧美丝袜在线观看| 亚洲另类第一页| 日韩人妻精品一区二区三区| 日韩毛片在线免费看| 男人添女荫道口女人有什么感觉| 久久精品国产露脸对白| 青青草综合在线| 无码人妻精品一区二区蜜桃网站| 97超碰国产精品| 99久久国产宗和精品1上映| 国产老熟妇精品观看| 四季av一区二区| 久久福利一区二区| 日日摸天天爽天天爽视频| 亚洲午夜精品一区| 欧美 日韩 国产在线观看| 国产l精品国产亚洲区久久| 日韩中文字幕二区| 91精品国产三级| aaaaaaaa毛片| 天堂а√在线中文在线 | 成人在线观看你懂的| 国产91沈先生在线播放| 久久视频这里有精品| 亚洲午夜精品一区| 亚洲熟妇无码一区二区三区| 亚洲中文字幕无码专区| jizz欧美激情18| 亚洲男人天堂av在线| 六月丁香激情网| 国产黄色激情视频| 五月天色婷婷综合| 国产免费999| 不卡av免费在线| 国产精品50p| 九色在线视频观看| 久久久亚洲精品无码| 红桃一区二区三区| 日韩成人三级视频| aa视频在线播放| 人人爽人人爽av| 日本不卡一区二区在线观看| 91动漫在线看| 国产主播自拍av| 日韩国产欧美亚洲| 国产成人亚洲精品无码h在线| 香蕉精品视频在线| 日本人视频jizz页码69| 国产91视频一区| 97超碰青青草| 日本中文字幕精品—区二区| 日韩不卡的av| 日本黄色a视频| 国产h视频在线播放| 欧美精品性生活| 欧美一级中文字幕| 91精品91久久久中77777老牛| 午夜剧场在线免费观看| www亚洲国产| 色多多视频在线播放| 国产精品av免费观看| 国产一区一区三区| 中文字幕日韩久久| 男人日女人下面视频| 久久综合亚洲精品| 中文字幕66页| 色婷婷成人在线| 自慰无码一区二区三区| 男人天堂网视频| 国产中文字幕视频在线观看| 91极品视频在线观看| 欧美成人黑人猛交| 俄罗斯av网站| 六月激情综合网| 国产一级片黄色| 色网站在线视频| 天堂…中文在线最新版在线| www.亚洲自拍| 亚洲欧洲日本精品| 国产无遮挡猛进猛出免费软件| 欧美一级黄色影院| 色播五月激情五月| 午夜久久久久久久久久久| 国产a级片网站| 日韩一级性生活片| 黄色一级二级三级| 奇米777四色影视在线看| 18禁网站免费无遮挡无码中文| 黄色成人在线看| 无限资源日本好片| 亚洲精品永久视频| 奇米影视亚洲色图| 久久精品久久99| 国产无色aaa| 网站一区二区三区| 久久久久久蜜桃一区二区| 国产av第一区| 三级在线免费看| 欧美大片免费播放| 亚洲少妇久久久| 99热自拍偷拍| 伊人再见免费在线观看高清版| 波多野结衣综合网| 久久人人爽人人爽人人av| 久久精品视频在线观看免费| 亚洲一区在线不卡| 男人靠女人免费视频网站| 国产一区二区片| 成人黄色大片网站| 成人在线观看黄| 成人性生活视频免费看| 日韩人妻无码精品久久久不卡| 黄色片免费网址| 18禁男女爽爽爽午夜网站免费| 欧美日韩成人免费视频| 国产免费一区二区三区视频| 午夜精品久久久久久久99热影院| 欧美精品性生活| 一级片免费在线观看视频| 欧美一级免费在线| 国产高清精品软男同| 久久久久久久久影视| 国产精品333| 国产精品一二三在线观看| 精品久久一二三| 红桃一区二区三区| 亚洲精品久久久久久久蜜桃臀| 免费国产a级片| 免费看欧美黑人毛片| 国产乱女淫av麻豆国产| 成人免费观看在线| 色婷婷一区二区三区在线观看| 欧美女人性生活视频| 福利在线小视频| 搡的我好爽在线观看免费视频| 久久久久福利视频| 黄色一级片网址| av在线免费看片| 九热视频在线观看| 蜜臀av午夜一区二区三区| 在线免费看污网站| 日产精品久久久久久久蜜臀| 午夜av中文字幕| 国产一级特黄a大片免费| www精品久久| 五月天综合婷婷| 精品视频在线观看一区二区| 国产大尺度在线观看| 91xxx视频| aa在线免费观看| 男人女人黄一级| 久激情内射婷内射蜜桃| 久久综合久久久久| 国产一级特黄a大片免费| 亚洲美女性囗交| 精品少妇人欧美激情在线观看| 欧美 日韩 国产 在线观看 | av电影一区二区三区| 日本韩国欧美在线观看| 青少年xxxxx性开放hg| 亚洲国产精品久久久久爰色欲| 日本久久久久久久久久久久|