作者andytzeng (Ya-Shiuan)
看板LinuxDev
标题Re: [问题] socket的一些问题
时间Fri Jun 29 07:06:50 2007
※ 引述《batista630 (努力工作!!)》之铭言:
: ※ 引述《qrtt1 (愚人)》之铭言:
: : 这不是 socket 的问题
: : 是 ftp 的问题,层次差很多,已经在 TCP/IP 层之上了
: 这当然是socket的问题呀 因为我用socket再写ftp XD
: : 你用 PORT 指令可以自己指定 port
: : PASV 你送出他会给你一个 ip+port -> 140,133,31,33,123,134
: : 最後二个是 port, 123 * 256^1 + 134 * 256 ^ 0
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 我知道怎麽换算,我好奇的是那个PORT NUMBER如何决定
: 因为我在写SERVER 所以我要给CLIENT PORT NUMBER去开DATA CHANEL
: : 应该直接查 RFC 954
: 我RFC959看心酸的XD..
: : 应该有 SYST 之类的指令
: 我会去翻翻标准程式库
我想你误会了 q 大的意思,你所提的三个问题都是属於 application control
的问题,并非 socket 的使用问题,而是 FTP protocol 实作问题
简单来说,PASV, Port number 决定等,都是由 ftp protocol 的 control 先
决定之後,才使用 socket 的 API (诸如bind 等) 来设定 port 等资讯
换言之,socket 只是被动的被告知你要 bind 的 port 在哪,要连的对象在哪
要送多少资料,要接收多少资料,但他无法告诉你「有多少资料要送」,因为
这件事情是更上层传送前就要知道的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.214.90
※ 编辑: andytzeng 来自: 220.135.188.188 (06/30 16:10)