狠狠综合久久久久综合网址-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>
    青青青免费在线| 男人添女人下面免费视频| 91香蕉视频导航| 久久久久狠狠高潮亚洲精品| 日韩a级在线观看| 国产免费裸体视频| 999久久欧美人妻一区二区| 天堂网成人在线| 日韩不卡视频一区二区| 超碰在线免费观看97| 亚洲天堂一区二区在线观看| 亚洲热在线视频| 三级在线免费观看| 国产爆乳无码一区二区麻豆| 国产情侣第一页| 69堂免费视频| 中文字幕av不卡在线| www.超碰97.com| 久久人妻无码一区二区| 日本xxxxxxxxxx75| 熟女性饥渴一区二区三区| www.精品在线| 亚洲男人天堂2021| av 日韩 人妻 黑人 综合 无码| 国产综合中文字幕| 欧美两根一起进3p做受视频| 欧美日韩中文不卡| 91嫩草国产丨精品入口麻豆| 国产一区二区网| 亚洲精品www.| 国产精品久久久久7777| 青青在线视频免费| 日本精品福利视频| 我要看一级黄色大片| 超级碰在线观看| 日日噜噜噜噜久久久精品毛片| 午夜一区二区视频| 色综合av综合无码综合网站| 小早川怜子一区二区三区| www.在线观看av| 亚洲第一色av| 日本a在线免费观看| 在线观看免费不卡av| 大j8黑人w巨大888a片| 深爱五月综合网| 成人精品小视频| 国产日产欧美一区二区| 五月婷婷激情久久| 国产亚洲欧美在线视频| 国产免费一区二区三区四在线播放| 北条麻妃在线视频观看| 女女百合国产免费网站| www.com黄色片| 老司机午夜av| 男人添女人下面高潮视频| 日韩不卡的av| 午夜一级免费视频| 一起操在线视频| 国内自拍视频网| the porn av| 少妇高清精品毛片在线视频| 又大又硬又爽免费视频| 黄色一级片国产| 91看片淫黄大片91| 欧美大片免费播放| 久久久天堂国产精品| 蜜桃网站在线观看| 日本一二三区视频在线| 手机看片日韩国产| 麻豆映画在线观看| 无码 制服 丝袜 国产 另类| 久久亚洲a v| 妞干网在线观看视频| 国产午夜福利100集发布| 青青草精品视频在线| www.中文字幕在线| 不要播放器的av网站| 久久久精品麻豆| 熟女熟妇伦久久影院毛片一区二区| 91手机视频在线| 黄色一级片黄色| 日日摸日日碰夜夜爽无码| 免费在线激情视频| 天天干天天干天天干天天干天天干| 美女一区二区三区视频| 黄色免费高清视频| 少妇高潮喷水在线观看| 高清av免费看| 国产女主播av| 国产精品无码一本二本三本色| 黄色片视频在线| 国产高清www| 污污视频网站免费观看| 免费成人进口网站| 久久久免费视频网站| 九九九九九九九九| 玩弄中年熟妇正在播放| 性欧美1819| 三上悠亚久久精品| 亚洲图片 自拍偷拍| 国产免费黄色小视频| 欧美国产日韩另类 | 国产毛片视频网站| 五月婷婷丁香色| 国产精品无码人妻一区二区在线| 特级丰满少妇一级| www.xxx麻豆| 加勒比av中文字幕| 国产在线青青草| 强开小嫩苞一区二区三区网站| 成人一区二区三| 精品人妻大屁股白浆无码| 中文字幕av专区| 播放灌醉水嫩大学生国内精品| 亚洲高清在线不卡| 成人免费视频久久| 欧美,日韩,国产在线| 免费国产成人看片在线| www.99r| 精品久久久久av| 日本丰满少妇xxxx| 天天想你在线观看完整版电影免费| 中文字幕有码av| 日本精品久久久久中文字幕| av免费看网址| 久久久久久久香蕉| 日韩视频在线观看视频| 污污的视频免费观看| 四季av一区二区三区| www.色就是色| 欧美午夜aaaaaa免费视频| 久久久久久久久久久久久国产精品 | 99国产精品久久久久久| 自拍偷拍 国产| 国产九九在线视频| 91蝌蚪视频在线观看| 欧美国产激情视频| 老熟妇仑乱视频一区二区| 精品99在线视频| 天天爽人人爽夜夜爽| www午夜视频| 精品一区二区成人免费视频| 182午夜视频| 大荫蒂性生交片| 国产a级一级片| 日韩av在线中文| 色姑娘综合天天| 人妻夜夜添夜夜无码av| 各处沟厕大尺度偷拍女厕嘘嘘| 日本成年人网址| 伊人网在线综合| 男人的天堂视频在线| 黄色成人在线看| 在线免费观看av的网站| 中国老女人av| 欧美牲交a欧美牲交aⅴ免费下载| 国产成人精品无码播放| 国产精品区在线| 2018国产在线| 中文字幕1234区| 玩弄中年熟妇正在播放| 香港日本韩国三级网站| 超薄肉色丝袜足j调教99| 欧美色图另类小说| 日日夜夜精品视频免费观看| 丰满少妇大力进入| 在线能看的av网站| 大陆av在线播放| 国内av一区二区| 成人免费观看视频在线观看| 亚洲天堂伊人网| 日韩av资源在线| 日韩精品一区二区免费| 99视频免费播放| a在线视频观看| 手机福利在线视频| 在线免费视频a| 成人在线国产视频| 天天操夜夜操很很操| 欧美黄色性生活| 男女av免费观看| 热99这里只有精品| 日韩视频一二三| 四虎1515hh.com| 日本国产一级片| 天堂社区在线视频| 免费观看精品视频| 青青青免费在线| 丝袜人妻一区二区三区| 亚洲五码在线观看视频| 久久婷婷中文字幕| 奇米视频7777| 高清av免费看| 美女一区二区三区视频| 日日碰狠狠躁久久躁婷婷| 97国产精东麻豆人妻电影| 精品久久一二三| 黄色片视频在线免费观看| 欧美久久久久久久久久久久久| 久久亚洲精品无码va白人极品|