免费一级欧美片在线观看网站_国产一区再线_欧美日本一区二区高清播放视频_国产99久久精品一区二区300

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

    免费一级欧美片在线观看网站_国产一区再线_欧美日本一区二区高清播放视频_国产99久久精品一区二区300
    91免费视频大全| 亚洲综合精品自拍| 美日韩黄色大片| 欧美午夜宅男影院| 日韩理论片中文av| 丰满白嫩尤物一区二区| 精品久久久久久最新网址| 天天影视网天天综合色在线播放| 色婷婷av久久久久久久| 国产精品热久久久久夜色精品三区| 久久99精品久久久久久国产越南 | 不卡欧美aaaaa| 亚洲精品高清在线| 欧美人与z0zoxxxx视频| 久热成人在线视频| 国产精品美女久久久久aⅴ | 国产一区不卡在线| 欧美xxxxx裸体时装秀| 舔着乳尖日韩一区| 欧美精品v国产精品v日韩精品| 亚洲精品国久久99热| 成人中文字幕电影| 国产午夜三级一区二区三| 狠狠色综合播放一区二区| 欧洲精品在线观看| 亚洲伊人色欲综合网| 91久久线看在观草草青青| 中文字幕一区二区三区四区不卡 | 秋霞av亚洲一区二区三| 91小视频免费看| 亚洲色图在线播放| 91麻豆免费看| 国产亚洲人成网站| 成人免费观看av| 图片区小说区区亚洲影院| 久久亚洲精品国产精品紫薇| 国精产品一区一区三区mba视频| 欧美tickling网站挠脚心| 久久激情五月婷婷| 欧美在线观看视频一区二区| 亚洲国产日韩精品| 欧美猛男超大videosgay| 国产精品女主播av| 91麻豆精品在线观看| 亚洲少妇最新在线视频| 成人毛片在线观看| 中文字幕一区二区日韩精品绯色| 色噜噜狠狠色综合欧洲selulu| 毛片一区二区三区| 亚洲激情成人在线| 欧美精品一区二区三| 欧洲生活片亚洲生活在线观看| 国产一区激情在线| 亚洲超丰满肉感bbw| 国产日韩精品一区| 91精品国产综合久久精品麻豆| 成人黄色片在线观看| 青青草成人在线观看| 亚洲欧洲在线观看av| 日韩精品中午字幕| 欧美在线你懂的| 成人午夜精品在线| 乱中年女人伦av一区二区| 亚洲免费资源在线播放| 久久九九久久九九| 91精品久久久久久久99蜜桃 | 2020国产成人综合网| 欧美视频在线观看一区二区| 成人成人成人在线视频| 九色综合狠狠综合久久| 亚洲国产一区二区在线播放| 国产欧美一区二区三区鸳鸯浴| 欧美一区二区三区思思人| 色综合色狠狠综合色| 国产福利一区二区三区视频| 日韩中文字幕亚洲一区二区va在线| 国产精品灌醉下药二区| 久久综合狠狠综合| 欧美一区二区在线视频| 欧美无砖砖区免费| 99久久精品国产观看| 国内精品免费**视频| 日韩精品电影在线| 一区二区三区免费网站| 国产精品国产自产拍在线| 精品国产乱码久久久久久蜜臀 | 日韩av一二三| 亚洲国产婷婷综合在线精品| 亚洲欧美在线aaa| 欧美国产一区视频在线观看| 精品剧情在线观看| 欧美一卡二卡在线| 91精品久久久久久蜜臀| 欧美精品第一页| 欧美日韩卡一卡二| 在线看不卡av| 在线一区二区视频| 色系网站成人免费| 色综合天天综合色综合av | 久久久不卡网国产精品二区 | 日韩欧美国产精品一区| 欧美日本在线播放| 欧美剧情片在线观看| 欧美三级在线播放| 欧美中文字幕一区二区三区 | 免费三级欧美电影| 日本成人在线电影网| 日本不卡一二三区黄网| 日本三级韩国三级欧美三级| 天堂成人免费av电影一区| 亚洲成人资源在线| 丝袜诱惑制服诱惑色一区在线观看 | 麻豆91精品91久久久的内涵| 蜜臀av性久久久久av蜜臀妖精| 日韩国产精品久久久| 日韩av一级片| 精品制服美女丁香| 激情成人午夜视频| 国产福利精品导航| 成人免费观看男女羞羞视频| jlzzjlzz亚洲日本少妇| 99久久精品免费精品国产| 一本大道久久a久久综合婷婷| 91丨九色丨尤物| 在线亚洲精品福利网址导航| 欧美亚洲国产一区二区三区 | 国产精品素人视频| 国产精品国产自产拍高清av| 亚洲天堂成人网| 亚洲一区视频在线| 午夜精品在线视频一区| 日韩av中文字幕一区二区| 麻豆91免费看| 国产成人欧美日韩在线电影| 国产成人午夜视频| 国产91丝袜在线播放| 91影视在线播放| 亚洲一二三四在线观看| 亚洲成人免费视频| 日本欧美肥老太交大片| 另类综合日韩欧美亚洲| 国产一区不卡精品| 成人免费视频视频| 欧美亚洲丝袜传媒另类| 欧美一区二区黄色| 国产日韩欧美精品在线| 亚洲色图在线播放| 亚洲成人免费电影| 蜜桃久久久久久| 成人午夜私人影院| 欧美中文字幕久久| 欧美变态tickling挠脚心| 中文字幕乱码日本亚洲一区二区| 亚洲欧美视频一区| 青青草原综合久久大伊人精品优势| 国产一区二区三区国产| 91在线视频网址| 777色狠狠一区二区三区| 久久久久国产成人精品亚洲午夜| 国产精品国产三级国产| 天堂va蜜桃一区二区三区漫画版| 国产一区二区毛片| 色婷婷国产精品综合在线观看| 日韩一区二区三区免费看| 国产无人区一区二区三区| 一区二区在线观看免费视频播放| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品一区二区免费不卡| 色素色在线综合| 日韩免费观看高清完整版| 中文字幕制服丝袜成人av| 亚洲成人www| 大白屁股一区二区视频| 欧美日韩一区二区三区高清| 久久久久久久久免费| 亚洲一区二区av电影| 国产黄色91视频| 欧美日韩成人一区二区| 国产欧美一区二区三区沐欲| 亚洲国产精品一区二区久久恐怖片 | 免费成人性网站| 99久久精品免费观看| 欧美成人性战久久| 亚洲黄一区二区三区| 国产精品亚洲午夜一区二区三区 | 日韩欧美黄色影院| 亚洲欧美日韩一区二区| 国模冰冰炮一区二区| 欧美在线看片a免费观看| 国产日产精品1区| 日本在线播放一区二区三区| 99久久久久免费精品国产| 精品免费视频.| 亚洲网友自拍偷拍| jlzzjlzz亚洲日本少妇| 精品国产三级a在线观看| 亚洲国产精品欧美一二99| 福利一区福利二区| 欧美r级在线观看| 亚洲国产精品自拍|