日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲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

              欧美大尺度在线| 亚洲高清视频一区二区| 久久九九有精品国产23| 狠狠干综合网| 噜噜噜91成人网| 亚洲最新合集| 国产一区日韩二区欧美三区| 狼人天天伊人久久| 亚洲资源在线观看| 亚洲成人在线网站| 国产精品一区久久久| 欧美成人激情视频| 欧美一级视频免费在线观看| 亚洲国产人成综合网站| 国产欧美婷婷中文| 欧美日韩另类在线| 欧美成人精品三级在线观看| 欧美伊人久久久久久午夜久久久久| 亚洲欧洲三级电影| 精品二区久久| 国产一区二区三区无遮挡| 欧美日韩一区二区在线| 欧美国产高清| 久久久五月天| 性一交一乱一区二区洋洋av| 夜夜精品视频一区二区| 亚洲三级性片| 91久久午夜| 亚洲国产精品va在线看黑人动漫 | 欧美黑人多人双交| 另类尿喷潮videofree| 久久久精品日韩| 欧美一区三区二区在线观看| 亚洲特级片在线| 日韩香蕉视频| 亚洲国产综合91精品麻豆| 国产性色一区二区| 国产模特精品视频久久久久 | 午夜久久福利| 亚洲欧美日韩天堂一区二区| 亚洲欧美日本在线| 亚洲欧美色一区| 午夜伦理片一区| 亚洲欧美日韩网| 欧美在线视频在线播放完整版免费观看| 9久草视频在线视频精品| 99精品热视频只有精品10| 亚洲精品乱码久久久久久久久| 亚洲激情成人网| 日韩视频二区| 亚洲一区二区三区四区五区黄| 亚洲午夜一二三区视频| 午夜日韩激情| 另类国产ts人妖高潮视频| 欧美国产日产韩国视频| 欧美日韩精品伦理作品在线免费观看| 欧美日韩国产成人在线免费| 欧美日韩亚洲高清一区二区| 国产精品试看| 国模大胆一区二区三区| 91久久久国产精品| 亚洲专区免费| 久久综合福利| 欧美日韩1区2区| 国产精品视频999| 国内欧美视频一区二区| 亚洲人成网在线播放| 亚洲一区二区三区免费视频| 久久九九99| 欧美日韩成人在线| 国产一区二区三区的电影| 亚洲久久视频| 久久久精品999| 欧美乱大交xxxxx| 国产综合视频在线观看| 亚洲精品偷拍| 久久久久99| 国产精品久久影院| 亚洲欧洲一区| 久久精品国产第一区二区三区最新章节 | 韩国亚洲精品| 一本色道综合亚洲| 欧美xart系列在线观看| 国产日韩欧美一二三区| 99re国产精品| 欧美成人自拍视频| 精品99一区二区三区| 亚洲一区二区三区在线播放| 免费日韩成人| 国内不卡一区二区三区| 亚洲一区二区视频在线| 欧美美女操人视频| 亚洲二区视频在线| 久久深夜福利免费观看| 国产乱码精品一区二区三区av| 日韩午夜高潮| 欧美高清在线视频观看不卡| 精品动漫3d一区二区三区免费| 亚洲影视九九影院在线观看| 欧美日韩99| 亚洲精品视频在线观看免费| 久久综合久色欧美综合狠狠 | 国产精品久久久久9999吃药| 亚洲精品视频在线播放| 欧美国产日韩精品| 亚洲欧洲一区二区三区久久| 久久中文欧美| 伊人久久成人| 麻豆乱码国产一区二区三区| 曰韩精品一区二区| 久久午夜视频| 亚洲国产另类久久精品| 欧美不卡视频| 亚洲精品日韩在线| 欧美日韩精品伦理作品在线免费观看| 亚洲国产精品日韩| 欧美激情精品| 亚洲天堂av在线免费观看| 欧美视频手机在线| 亚洲欧美卡通另类91av| 国产精品入口福利| 久久精品国产在热久久| 影音先锋亚洲精品| 欧美日本一区二区三区| 亚洲午夜免费福利视频| 国产日韩欧美综合精品| 久久一区二区精品| a91a精品视频在线观看| 国产麻豆91精品| 久久亚洲精品网站| 日韩视频一区二区三区在线播放| 欧美日韩在线观看一区二区| 亚洲欧美在线网| 在线看成人片| 欧美色播在线播放| 国产精品婷婷| 久久亚洲图片| 一区二区三区波多野结衣在线观看| 国产精品亚洲不卡a| 麻豆精品一区二区av白丝在线| 日韩视频免费观看高清在线视频| 国产精品欧美精品| 欧美91福利在线观看| 亚洲欧美日韩精品久久久久| 亚洲国产精品久久久久久女王| 欧美日韩精品在线视频| 久久精品国产视频| 一区二区三区日韩| 在线观看一区二区视频| 国产精品久久毛片a| 欧美激情自拍| 久久九九免费| 亚洲一区二区不卡免费| 亚洲欧洲精品一区二区| 国产综合在线看| 国产精品美女久久久久久久| 欧美激情第五页| 久久国产综合精品| 亚洲欧美国产不卡| 夜夜精品视频一区二区| 在线看欧美日韩| 国产视频自拍一区| 国产精品美女久久久久av超清 | 韩国av一区二区三区四区| 欧美午夜不卡在线观看免费| 欧美国产视频日韩| 久热精品视频在线| 久久激情久久| 久久国产精品网站| 欧美伊人久久| 性18欧美另类| 西西裸体人体做爰大胆久久久| 一本色道久久综合亚洲精品不卡| 亚洲电影免费观看高清完整版在线观看 | 国产精品自在线| 国产精品美女www爽爽爽| 欧美日韩中文字幕精品| 欧美金8天国| 欧美韩日一区| 欧美精品自拍| 欧美日韩久久精品| 欧美视频国产精品| 欧美性视频网站| 国产精品久久久久久久一区探花 | …久久精品99久久香蕉国产 | 亚洲精选视频免费看| 亚洲精品乱码久久久久久| 亚洲国产精品www| 在线日本成人| 亚洲人成网站影音先锋播放| 亚洲精品视频在线观看免费| 一本久久综合亚洲鲁鲁| 亚洲午夜精品| 欧美在线综合| 久久久久综合| 欧美成va人片在线观看| 欧美日韩精品一区二区在线播放 | 久久爱www久久做| 久久亚洲一区二区三区四区| 欧美成人国产一区二区|