久久久久久精品无码人妻_青春草无码精品视频在线观_无码精品国产VA在线观看_国产色无码专区在线观看

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)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區(qū)
    昆明西山國家級風景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • 短信驗證碼平臺 理財 WPS下載

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

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

    久久久久久精品无码人妻_青春草无码精品视频在线观_无码精品国产VA在线观看_国产色无码专区在线观看

    情侣黄网站免费看| 色呦呦网站入口| 国产三级精品三级在线| www.日本在线播放| 91九色国产ts另类人妖| 五月激情五月婷婷| 992kp快乐看片永久免费网址| 人人干视频在线| 天天做天天躁天天躁| 中文字幕制服丝袜在线| 在线观看免费av网址| 国产又大又黄又粗又爽| www.日日操| 欧美黄色一级片视频| 亚洲精品无码久久久久久| 国模无码视频一区二区三区| 国产精品久久久久7777| 成人免费性视频| 日韩a级在线观看| 男人添女荫道口女人有什么感觉| 午夜啪啪福利视频| 99中文字幕在线观看| 91免费视频黄| 国内自拍中文字幕| 男人天堂a在线| 丰满少妇大力进入| 日韩国产欧美亚洲| 日韩精品视频久久| 国产黄色特级片| av五月天在线| 久久黄色片网站| www.成人黄色| 青草全福视在线| 黄色一级片在线看| 免费黄色日本网站| 国产精品无码专区av在线播放| 精品视频无码一区二区三区| 美女网站色免费| 午夜一级免费视频| 国风产精品一区二区| 国产一线二线三线女| 精品国产免费av| 中文字幕av不卡在线| 三级黄色片免费观看| 欧美性受黑人性爽| 国产免费观看高清视频| 午夜欧美福利视频| 中文字幕在线视频一区二区| 欧美激情亚洲天堂| 欧美成人xxxxx| 色乱码一区二区三区在线| 欧美xxxxxbbbbb| 久久成人福利视频| 免费黄色一级网站| 男女视频在线观看网站| 欧美性潮喷xxxxx免费视频看| 日韩人妻精品无码一区二区三区| 久久久精品三级| 日韩av影视大全| 久久这里只有精品8| 亚洲精品乱码久久久久久自慰| 99re6在线观看| 婷婷无套内射影院| 污色网站在线观看| 国产精品69久久久| 狠狠热免费视频| 91黄色在线看| jizz18女人| 欧美综合在线播放| theporn国产精品| 免费看又黄又无码的网站| 亚洲精品手机在线观看| 国产a级片网站| 日本中文字幕观看| 免费av观看网址| 国产三级生活片| 亚洲 自拍 另类小说综合图区| www.四虎成人| 成人在线国产视频| 日本一二三四区视频| 男人揉女人奶房视频60分| 91亚洲一区二区| 女人喷潮完整视频| 精品少妇人妻av一区二区| 精品中文字幕av| ijzzijzzij亚洲大全| 在线观看的毛片| 久久这里只有精品23| 中国黄色片免费看| 18禁免费观看网站| 无码人妻精品一区二区三区99v| 熟妇人妻va精品中文字幕| 免费人成在线观看视频播放| 天天干在线影院| 欧美a v在线播放| 日本高清免费在线视频| 国产a级一级片| 日韩一级片免费视频| 亚洲最新免费视频| 午夜国产一区二区三区| 少妇高潮毛片色欲ava片| 法国空姐在线观看免费| 992kp快乐看片永久免费网址| 色戒在线免费观看| 国内少妇毛片视频| 中国黄色片一级| 丰满少妇在线观看| 免费成人午夜视频| 伊人再见免费在线观看高清版 | 亚洲一二三不卡| 国产v亚洲v天堂无码久久久| 91九色丨porny丨国产jk| 爱爱爱视频网站| 911av视频| 亚洲xxxx2d动漫1| 国产精品无码专区av在线播放| 欧美日韩精品在线一区二区 | 91视频 - 88av| 国产一级黄色录像片| 国产高潮呻吟久久久| 在线观看免费不卡av| 婷婷六月天在线| 亚洲高清在线免费观看| 九色在线视频观看| 欧美国产亚洲一区| 成人在线视频一区二区三区| 成人在线观看毛片| 成人不卡免费视频| 极品粉嫩美女露脸啪啪| 欧洲在线免费视频| 日本网站在线看| 18视频在线观看娇喘| 国产精品国产三级国产专区51| 手机在线观看日韩av| 在线观看成人免费| 五月天国产视频| 91精品999| 成人亚洲免费视频| 国产又粗又大又爽的视频| 亚洲精品乱码久久久久久动漫| 玖玖爱视频在线| 1314成人网| bt天堂新版中文在线地址| av在线播放亚洲| 日韩精品在线播放视频| 成人免费看片'免费看| 欧美黄色免费影院| 91制片厂毛片| 丰满女人性猛交| www.好吊操| 国产av人人夜夜澡人人爽麻豆 | 亚洲 自拍 另类小说综合图区| 精品无码国模私拍视频| 精品免费国产一区二区| 日韩 欧美 高清| 亚洲综合欧美激情| 天天操天天摸天天爽| www.色.com| 男人和女人啪啪网站| 99热成人精品热久久66| 99热亚洲精品| 99热成人精品热久久66| 天天操天天爽天天射| 九一精品久久久| 国产精品无码电影在线观看| a级黄色一级片| 99热这里只有精品免费| 国产成人无码精品久久久性色| 在线视频日韩一区| 国产福利片一区二区| 蜜臀精品一区二区| 成年人在线观看视频免费| 亚欧美在线观看| 300部国产真实乱| 日韩av一二三四区| 亚洲一区二区中文字幕在线观看| 天天做天天爱天天高潮| www.中文字幕在线| 99亚洲国产精品| 亚洲18在线看污www麻豆| 中文字幕22页| 中文字幕一区二区三区四| 男人天堂网站在线| 能在线观看的av| 男人天堂成人在线| 成人av在线播放观看| 91制片厂毛片| 黄色一级视频在线播放| 9l视频白拍9色9l视频| 日韩欧美一级在线| 别急慢慢来1978如如2| www国产无套内射com| 一级特黄性色生活片| 91动漫在线看| 久久精品国产露脸对白| 男女av免费观看| 黄色影视在线观看| 亚洲欧洲日本精品| heyzo国产| 少妇大叫太大太粗太爽了a片小说|