精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕

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

    精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕
    <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
    <ul id="e4iaa"></ul>
    <blockquote id="e4iaa"><tfoot id="e4iaa"></tfoot></blockquote>
    • <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
      <ul id="e4iaa"></ul>
      <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp><ul id="e4iaa"></ul>
      <ul id="e4iaa"></ul>
      <th id="e4iaa"><menu id="e4iaa"></menu></th>
      亚洲国产精品久久人人爱潘金莲 | 久久久久久久蜜桃| 四虎成人精品永久免费av| aaa国产视频| 亚洲第一视频在线播放| 欧美一级免费在线| 蜜桃精品一区二区| 欧美成人午夜精品免费| 老熟妇一区二区三区啪啪| 99在线精品视频免费观看软件| 无码人妻av一区二区三区波多野 | 免费在线观看日韩av| 国产农村妇女毛片精品久久| 99久久99久久精品免费看小说.| 五月婷婷开心中文字幕| 天天干天天干天天干| 亚州av综合色区无码一区| 影音先锋国产在线| 亚洲国产综合av| 在线观看岛国av| 亚洲麻豆一区二区三区| 亚洲熟女一区二区| xfplay5566色资源网站| 国产精品国产精品国产| 国产综合在线播放| 久久中文字幕精品| 全部免费毛片在线播放一个| 蜜桃av免费看| 天天综合天天色| 午夜天堂在线视频| 亚洲精品.www| 成人小视频免费看| 久久精品国产99久久99久久久| 欧美日韩偷拍视频| 五月婷婷六月丁香激情| 91精品国产高潮对白| 国产成人手机在线| 欧美日韩中文字幕在线观看| 一区二区视频网站| 99久久精品国产成人一区二区| 国产精品久久久久久久妇| 精品毛片在线观看| 天天操天天干天天干| 99热这里只有精品在线| 国产午夜久久久| 日韩av网站在线播放| 亚洲一区二区偷拍| 激情五月婷婷小说| 日韩在线视频免费播放| 一级黄色a视频| 伦av综合一区| 99热这里只有精品9| 日韩av无码中文字幕| 97人人爽人人| 欧美日韩中文不卡| 亚洲最大成人av| 蜜桃av噜噜一区二区三区麻豆| 亚洲国产精品久久人人爱潘金莲 | 偷拍女澡堂一区二区三区| 亚洲精品人妻无码| 国产精品揄拍100视频| 午夜影院免费体验区| 国产三级在线观看视频| 中文字幕一区二区三区手机版| 激情综合五月网| 伊人色在线观看| 九九九免费视频| 91美女精品网站| 日韩在线一卡二卡| 好吊视频在线观看| 亚洲婷婷久久综合| 欧美精品二区三区| 国产在线观看成人| va婷婷在线免费观看| 天天天天天天天天操| 黄色aaa视频| 国产叼嘿视频在线观看| 最新国产黄色网址| 四季av一区二区三区| 久久精品视频久久| а中文在线天堂| 成人区人妻精品一区二| 老熟妇一区二区| 日韩精品电影一区二区| 中文乱码字幕高清一区二区| 国产欧美第一页| 91高清国产视频| 天堂中文在线官网| 91精品国自产| 天堂av资源在线| 国产一卡二卡三卡四卡| 一本一道无码中文字幕精品热| 人妻少妇无码精品视频区| 国产女人爽到高潮a毛片| 99久久精品国产亚洲| 一区二区三区亚洲视频| 天堂在线精品视频| 青草影院在线观看| 免费国产精品视频| 九九这里只有精品视频| 黄色av网站免费| 国产一级一片免费播放| 国产免费一区二区三区最新不卡| aaa一区二区| 国产叼嘿视频在线观看| 97视频免费在线| 91欧美一区二区三区| 99在线精品视频免费观看软件| h色网站在线观看| 国产xxx在线观看| 国产在线欧美在线| 欧美高清性xxxx| 天天色综合av| 中文字幕一区二区人妻电影| 中文字幕一区2区3区| 97人妻天天摸天天爽天天 | 男人天堂综合网| 黄色工厂在线观看| 可以在线观看av的网站| 日本欧美www| 在线免费黄色av| 99九九精品视频| 国产精品白浆一区二小说| 国产福利在线观看视频| 精品黑人一区二区三区| 麻豆成人免费视频| 色网站在线播放| 亚洲视频天天射| 国产熟女一区二区| 日韩高清第一页| 亚洲国产成人一区二区| 国产成人黄色网址| 日韩Av无码精品| 中文字幕精品久久久| 99久久精品久久亚洲精品| av在线免费看片| 久久久久xxxx| 在线观看av网页| 国产美女自慰在线观看| 日韩欧美中文视频| 99精品欧美一区二区| 久久国产美女视频| 最新天堂在线视频| 久久国产免费观看| 亚洲一区二区三区日韩| 久久久久久国产精品视频| 中文字幕av久久爽一区| 国产三级国产精品国产专区50| 女教师高潮黄又色视频| 亚洲天堂av线| 欧美视频亚洲图片| 不卡av电影在线| 四虎国产精品永久免费观看视频| 国产jjizz一区二区三区视频| 欧美 日韩 国产 成人 在线| 香蕉视频久久久| 黄色在线观看av| 一二三av在线| 区一区二在线观看| 丰满少妇一区二区三区| 日韩中文字幕a| 国产九九在线视频| 亚洲国产精品自拍视频| 九九热免费在线| 97人妻一区二区精品免费视频| 色播五月综合网| 久久久久久久久久久久国产| 亚洲色大成网站www| 日韩免费成人av| 国产香蕉在线观看| 97精品人妻一区二区三区在线| 天天干天天干天天| 欧美一区二区三区激情| 狠狠躁日日躁夜夜躁av| www.欧美com| 亚洲色图欧美视频| 在线视频一二区| 午夜不卡福利视频| 欧美亚洲日本在线| 久久久久久福利| 精品久久久久中文慕人妻| 国产69精品久久久久久久久久| 亚洲天堂一区二区在线观看| 无码人妻一区二区三区精品视频 | 国产欧美精品一二三| 亚洲一区欧美在线| 五月婷婷综合激情网| 日韩一区二区三区四区在线| 麻豆国产尤物av尤物在线观看| 国产亚洲成人精品| 国产精品久久久久久久妇| 91精品国产三级| 99精品999| 97人妻人人澡人人爽人人精品 | 婷婷开心激情网| 日韩欧美视频在线免费观看| 欧美成人aaa片一区国产精品| 精品久久久久久无码人妻| 国产精品99精品| 懂色av粉嫩av蜜臀av一区二区三区|