作者chchwy (mat)
看板NTUE-CS102
标题Re: [闲聊] 程设作业
时间Wed Jun 15 17:37:04 2011
同场加映,怎麽写 get/put
先讲讲概念性的东西,照理说会写 dir/ldir 就会写 get/put
因为说到底,一个档案也不过就是一坨bytes,只是这坨bytes可能很大一坨。
所以一个字串是不是一坨bytes? 你会传字串的话,传一个档案行不行呢?
socket的本质就是把一坨byte从网路的一头塞到另一头去而已,对吧。
比方说,现在使用者下了一个指令 get hotgirl.avi
他想要从远端的server抓这个档案下来
整体来看get指令的流程
Server Client
1. 读入指令 (get hotgirl.avi)
2. 将指令送给server
<---
3. 接收指令
4. 打开 hotgirl.avi 档案
5. 把 hotgirl.avi 的档案内容全写进socket
---->
6. 接收server传过来的结果
7. 开一个新档案 hotgirl.avi
8. 把接收到的内容写进新档案
整个流程都跟其他指令一漾,
唯一的差别,是关於档案操作的部分。
授人以鱼不如受人以渔,写c/c++不能不逛这个站。
http://www.cplusplus.com/reference/clibrary/cstdio/fread/
连结里的范例程式
就是教你怎麽把整个档案的内容搬进一个char array里,
简单讲就是去弄懂fread()这个函数的用法。
那接下来server端要怎麽样把这个 char array 写进socket?
跟送字串一样。
client 要怎麽收这一大坨char array?
跟收字串一样。
字串长度变变成档案长度。
收下来的字串原本要打印到萤幕上,现在改成写进硬碟。
(怎麽写档,可以查查fwrite() )
===以下是有点机歪的废话===
写不出作业推给"老师教不好"跟"大家都不会写"
真是最烂的两个理由了。
有很多事情不管老师教得好不好,都应该要会,
这算是对自己能力负起责任。
过错全推给老师,世界照常运转,老师照常领薪水,
只有不会的人...还是不会,谁管你。
当初这一系列ftp文,
也是我自己念 Unix Network Programming 原文书前五章总结出来的。
然後 "大家都不会写" 更好笑,
你眼里的"大家"样本是多大? 国北资科的30人? 台湾的资X系?
要不要看看这本课本多少学校在用?
游老师的课不轻松,但是作业其实都在合理难度范围内,多加油吧。
其实我一直期待有一天能被被超强学弟妹打趴阿 !!!
--
---- chchwy <批兔个人版> ptt2.cc
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.107.75
※ 编辑: chchwy 来自: 114.45.107.75 (06/15 17:42)
1F:推 WAYS22275:建中哥必推 06/15 17:55
2F:推 pk873:推强者我学长 06/15 18:12
3F:推 Markseinn:拜一下 06/15 20:00
4F:推 FSRS:好文推 06/15 20:12
※ 编辑: chchwy 来自: 140.115.158.103 (06/16 21:27)
5F:推 jerry771210:有神快拜!! 06/17 09:12