日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲AV成人精品日韩一区18p

COMP3310代做、代寫(xiě)C++, Java/Python編程

時(shí)間:2024-04-16  來(lái)源:  作者: 我要糾錯(cuò)



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.

請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

標(biāo)簽:

掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)
  • 上一篇:代做COMP9024、代寫(xiě)C++設(shè)計(jì)編程
  • 下一篇:代寫(xiě)CS360、代做Java/Python程序設(shè)計(jì)
  • 無(wú)相關(guān)信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲(chóng)
    油炸竹蟲(chóng)
    酸筍煮魚(yú)(雞)
    酸筍煮魚(yú)(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚(yú)
    香茅草烤魚(yú)
    檸檬烤魚(yú)
    檸檬烤魚(yú)
    昆明西山國(guó)家級(jí)風(fēng)景名勝區(qū)
    昆明西山國(guó)家級(jí)風(fēng)景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗(yàn)證碼平臺(tái) 幣安官網(wǎng)下載 歐冠直播 WPS下載

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲AV成人精品日韩一区18p

              9000px;">

                        中文字幕一区在线观看视频| 蜜臀久久99精品久久久画质超高清| 性做久久久久久免费观看欧美| 成人不卡免费av| 久久综合色8888| 国产乱人伦偷精品视频不卡| 国产欧美一区二区精品性| 99久精品国产| 舔着乳尖日韩一区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品99久久久久久似苏梦涵| 国产精品福利一区| 6080yy午夜一二三区久久| 国产一区二区影院| 一区二区三区国产精品| 日韩欧美中文字幕制服| 成人aa视频在线观看| 午夜在线成人av| 中文字幕高清不卡| 日韩一区二区在线播放| 成人免费不卡视频| 日本成人在线网站| 亚洲欧美日韩国产另类专区| 精品日韩成人av| 99精品欧美一区二区三区综合在线| 调教+趴+乳夹+国产+精品| 国产欧美日本一区视频| 欧美在线free| 99久久精品情趣| 国产高清不卡二三区| 亚洲国产成人精品视频| 国产精品乱码人人做人人爱| 日韩欧美中文一区| 欧美日韩激情一区二区三区| 91视频国产观看| 99久免费精品视频在线观看| 国产一区欧美日韩| 蜜臀久久99精品久久久久宅男 | 精品在线播放免费| 日韩综合小视频| 亚洲免费观看高清完整版在线观看| 久久久久久综合| 欧美电视剧免费观看| 欧美三级一区二区| 91久久久免费一区二区| 91色在线porny| 成人国产视频在线观看| 国产精品自拍一区| 黄色成人免费在线| 久久激五月天综合精品| 蜜桃av一区二区| 麻豆精品一区二区三区| 三级亚洲高清视频| 日韩国产成人精品| 日韩成人av影视| 日韩和欧美的一区| 日本女人一区二区三区| 蜜桃久久精品一区二区| 激情欧美日韩一区二区| 精品在线一区二区| 国产高清精品久久久久| 成人午夜电影小说| 一本久久精品一区二区| 欧美怡红院视频| 在线播放91灌醉迷j高跟美女| 欧美美女直播网站| 日韩免费看的电影| 中文字幕免费观看一区| 亚洲视频免费在线观看| 一区二区成人在线| 日韩专区在线视频| 国产成人在线网站| 色激情天天射综合网| 337p亚洲精品色噜噜| 2023国产精华国产精品| 国产精品久久久久久亚洲毛片| 亚洲男同性恋视频| 奇米色777欧美一区二区| 国产麻豆精品久久一二三| 成人av电影在线观看| 欧美日韩国产在线观看| 日韩视频国产视频| 中文字幕一区二区视频| 亚洲成av人片一区二区| 国产精品亚洲成人| 色婷婷av久久久久久久| 91精品国产综合久久久久| 国产午夜一区二区三区| 亚洲第一综合色| 国产精品综合一区二区| 日本高清不卡视频| 久久久久久久综合日本| 亚洲一区欧美一区| 国产不卡在线视频| 欧美一卡在线观看| 亚洲欧美另类在线| 国产乱人伦偷精品视频不卡| 欧美日韩一级二级| 中文无字幕一区二区三区| 亚洲国产视频直播| 99久久99久久精品免费看蜜桃| 欧美一区二区精品在线| 亚洲女厕所小便bbb| 成人午夜私人影院| 精品国产免费久久| 日韩精品乱码免费| 欧洲精品一区二区| 亚洲丝袜精品丝袜在线| 国产69精品久久久久毛片| 精品国一区二区三区| 日日夜夜一区二区| 91国产成人在线| 中文字幕一区二区三| 国产综合色产在线精品| 日韩一区二区电影网| 亚洲国产欧美另类丝袜| 色老汉av一区二区三区| 国产精品乱子久久久久| 高潮精品一区videoshd| 欧美精品一区二区不卡| 久久se精品一区精品二区| 精品视频一区三区九区| 一区二区免费在线播放| 在线观看日韩高清av| 亚洲精品少妇30p| 色偷偷久久一区二区三区| 中文字幕一区二区三区av| 99综合影院在线| 中文字幕中文乱码欧美一区二区| 国产精品亚洲一区二区三区在线| 久久久久久久电影| 国产成人免费视频网站| 国产精品免费aⅴ片在线观看| 国产69精品久久久久777| 国产精品网站导航| 一本大道久久a久久精品综合| 亚洲综合成人在线| 欧美日韩在线直播| 奇米影视在线99精品| 欧美电视剧在线看免费| 国产毛片一区二区| 《视频一区视频二区| 日本道色综合久久| 视频一区二区不卡| 久久精品夜色噜噜亚洲a∨| 成人黄色大片在线观看| 亚洲国产精品尤物yw在线观看| 欧美高清一级片在线| 精品夜夜嗨av一区二区三区| 国产精品久久久99| 欧美精品丝袜中出| 国产盗摄精品一区二区三区在线| 中文字幕日本乱码精品影院| 欧美日韩在线直播| 国产精品中文字幕日韩精品| 最新不卡av在线| 欧美一级日韩一级| 91首页免费视频| 蜜臀久久久久久久| 国产日韩欧美亚洲| 欧美日韩美女一区二区| 国产精品原创巨作av| 亚洲午夜久久久| 国产偷国产偷精品高清尤物| 在线观看国产一区二区| 黑人精品欧美一区二区蜜桃| 日韩码欧中文字| 久久亚洲影视婷婷| 欧美亚洲高清一区| 大桥未久av一区二区三区中文| 亚洲综合自拍偷拍| 国产亚洲欧美激情| 69堂成人精品免费视频| 91丝袜高跟美女视频| 国产精品一区二区视频| 丝袜美腿成人在线| 亚洲激情在线激情| 国产精品天美传媒| 欧美电影免费观看高清完整版在| 一本一道久久a久久精品| 国产毛片精品国产一区二区三区| 亚洲午夜私人影院| 亚洲欧美自拍偷拍| 国产欧美一区二区精品婷婷| 欧美精品亚洲二区| 欧美日韩国产另类不卡| 99re免费视频精品全部| 国产成人av一区二区三区在线 | 亚洲精品亚洲人成人网| 精品99一区二区三区| 欧美一级日韩不卡播放免费| 欧美视频在线一区| 欧美在线不卡视频| 欧美在线看片a免费观看| 91麻豆文化传媒在线观看| 成人一区二区三区在线观看| 国产盗摄视频一区二区三区| 久久99这里只有精品| 蜜臀久久久99精品久久久久久| 天使萌一区二区三区免费观看|